将NSInteger传递给方法不起作用

时间:2012-01-13 13:44:41

标签: iphone objective-c ios nsstring

我正在调用一个方法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);

1 个答案:

答案 0 :(得分:5)

NSInteger不是对象。你通常不会指向它。你的signtuare应该是:

- (NSArray*)allProductsForManufacturedID:(NSInteger)manufactID

使用get表明manufactID是一种基准的回归,而不是。{1}}。您还希望在此使用xForY而不是xByY。您的名字听起来应该返回NSDictionary

如果这对你的调用者特别有用,你可以将它作为一个可变数组返回,但通常这是一个普通的数组。这样,如果您稍后更改此代码以缓存结果,则呼叫者不会感到惊讶。