2011-11-27 148 views
1

从SQLite数据库检索整数值时遇到问题。我有一个Integer存储在数据库中的疾病。在我的疾病类中,我宣布它为NSNumber * sickid。从SQlite数据库检索整数值

从数据库读取时,我做

NSNumber *illid = [NSNumber numberWithInt:(int)sqlite3_column_text(compiledStatement, 0)]; 
.......... 
[listContent addObject:[Illness illnessWithid:illid illness:illness defn:definition]]; 

其中的listContent是NSMutable阵列。

现在,我将疾病对象传递给另一个类,并尝试检索疾病查询数据库。

NSNumber *myno = illness.illnessid; 
NSInteger illid = [myno integerValue]; 

但这个illid不是存储在db中的整数值。我需要帮助!

回答

0

您正在将SQLite数据库中的值作为char *并试图将其显式转换为int。这不可能。作为替代方案,直接将值作为int即可。

改变这一行...

NSNumber *illid = [NSNumber numberWithInt:(int)sqlite3_column_text(compiledStatement, 0)]; 

到...

NSNumber *illid = [NSNumber numberWithInt:sqlite3_column_int(compiledStatement, 0)]; 
+0

太感谢你了!它像一个魅力! – user1065969