我正在调用一个方法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 *)manufactID
2)sqlite3_bind_int(statement,1,manufactID);
答案 0 :(得分:5)
NSInteger
不是对象。你通常不会指向它。你的signtuare应该是:
- (NSArray*)allProductsForManufacturedID:(NSInteger)manufactID
使用get
表明manufactID
是一种基准的回归,而不是。{1}}。您还希望在此使用xForY
而不是xByY
。您的名字听起来应该返回NSDictionary
。
如果这对你的调用者特别有用,你可以将它作为一个可变数组返回,但通常这是一个普通的数组。这样,如果您稍后更改此代码以缓存结果,则呼叫者不会感到惊讶。