SQLite3 编译时出错



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

隐式转换会丢失整数精度sqlite3_int64又名long longint

下面的代码:

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

有什么帮助吗?

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

chatId = [[NSNumber alloc] initWithLongLong:sqlite3_last_insert_rowid(database)];

参见方法 sqlite3_last_insert_rowid 的实现,它返回一个 long long int 值,所以你需要
[NSNumber alloc] initWithLongLong: sqlite3_last_insert_rowid(database)];

SQLITE_API sqlite_int64 sqlite3_last_insert_rowid(sqlite3 *db){
  return db->lastRowid;
}

最新更新