我正在使用Xcode5在ios7上编码,编译器给我发了这个错误。
隐式转换失去整数精度
sqlite3_int64
又名long long
到int
。
以下代码:
if([self chatId] != nil) {
[chatId release];
}
chatId = [[NSNumber alloc] initWithInt:sqlite3_last_insert_rowid(database)];
sqlite3_finalize(sqlStatement);
任何帮助?
答案 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;
}