передача NSInteger в метод не работает - PullRequest
1 голос
/ 13 января 2012

Я вызываю метод getAllProductsByManufacturedID, который получает NSInteger в качестве параметра, см. Код ниже:

// call the method with int value
[dbAccess getAllProductsByManufacturedID:5];

// method for extract all row with manufactured id = ?
- (NSMutableArray*)getAllProductsByManufacturedID:(NSInteger *)manufactID
{
    const char *sql = "SELECT * FROM Product WHERE manufacturerid = ?";

    sqlite3_stmt *statement;

    if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL)== SQLITE_OK) 
    {
       sqlite3_bind_int(statement, 1, manufactID);
    }
}

Мне кажется, есть две проблемы:
1) (NSMutableArray *) getAllProductsByManufacturedID: (NSInteger *) ManufactureID
2) sqlite3_bind_int (оператор, 1, ManufactureID);

1 Ответ

5 голосов
/ 13 января 2012

NSInteger не является объектом.Вы вообще не берете указатель на это.Ваш signtuare здесь должен быть:

- (NSArray*)allProductsForManufacturedID:(NSInteger)manufactID

Использование get предполагает, что manufactID является возвратом по ссылке, а это не так.Вы также хотите использовать xForY здесь вместо xByY.Ваше имя звучит так, как будто оно должно возвращать NSDictionary.

. Вы можете вернуть это как изменяемый массив, если это особенно хорошо для вашего абонента, но обычно это будет обычный массив.Таким образом, если вы позже измените этот код для кэширования результата, вызывающие абоненты не будут удивлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...