编译时出现sqlite3错误

时间:2013-09-26 02:12:36

标签: objective-c sqlite

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

  

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

以下代码:

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

任何帮助?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

查看方法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;
}