0

我正在使用 Xcode5 在 ios7 上编码,编译器给我这个错误。

隐式转换失去整数精度,sqlite3_int64long long就是int.

下面的代码如下:

if([self chatId] != nil) {
    [chatId release];
}
chatId = [[NSNumber alloc] initWithInt:sqlite3_last_insert_rowid(database)];
sqlite3_finalize(sqlStatement);

有什么帮助吗?

4

2 回答 2

5

SQLite3 行 ID 是唯一的 64 位有符号整数。尝试这个:

chatId = [[NSNumber alloc] initWithLongLong:sqlite3_last_insert_rowid(database)];
于 2013-09-26T02:18:42.780 回答
0

see implementation of method sqlite3_last_insert_rowid, it returns a long long int value, so you need to
[NSNumber alloc] initWithLongLong: sqlite3_last_insert_rowid(database)];

SQLITE_API sqlite_int64 sqlite3_last_insert_rowid(sqlite3 *db){
  return db->lastRowid;
}
于 2013-09-26T02:20:09.867 回答