从SQLite db中检索Integer值时遇到问题。我有一个存储在db中的Integer。在我的Illness课程中,我已将其声明为NSNumber * sickid。
从数据库读取时,我做
NSNumber *illid = [NSNumber numberWithInt:(int)sqlite3_column_text(compiledStatement, 0)];
..........
[listContent addObject:[Illness illnessWithid:illid illness:illness defn:definition]];
其中listcontent是NSMutable数组。
现在我将Illness对象传递给另一个类并尝试检索sickid以查询数据库。
NSNumber *myno = illness.illnessid;
NSInteger illid = [myno integerValue];
但是这个illid不是db中存储的整数值。我需要帮助!
答案 0 :(得分:0)
您将SQLite数据库中的值作为char *
提取并尝试将其显式转换为int
。这是不可能的。作为替代方案,只需将值直接拉为int
即可。
更改此行...
NSNumber *illid = [NSNumber numberWithInt:(int)sqlite3_column_text(compiledStatement, 0)];
到...
NSNumber *illid = [NSNumber numberWithInt:sqlite3_column_int(compiledStatement, 0)];