我正在制作sqlite3
test3.sql 数据库,
把桌子作为
CREATE TABLE rest (name VARCHAR(100), price VARCHAR(100));
表已成功创建但现在当我使用方法插入和检索数据时,然后收到错误,,,
错误在线
NSString *str = [NSString stringWithUTF8String:
(char *)sqlite3_column_text(compiledStatement, 1)];
错误为+[NSString stringWithUTF8String:]: NULL cString'
这是什么错误,如何将其删除?
答案 0 :(得分:29)
而不仅仅是
... = [NSString stringWithUTF8String:
(char *)sqlite3_column_text(compiledStatement, 15)]
您想使用类似
的内容... = ((char *)sqlite3_column_text(compiledStatement, 15)) ?
[NSString stringWithUTF8String:
(char *)sqlite3_column_text(compiledStatement, 15)] : nil;
答案 1 :(得分:5)
使用三元运算符从db获取值后,您必须检查值是否为nil。否则程序仍会崩溃。
NSString *retrievedString = ((char *)sqlite3_column_text(statement, 15)) ?
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 15)] :
nil;
if(retrievedString == nil){
[allSteps addObject:@""];
} else {
[allSteps addObject:retrievedString];
}
答案 2 :(得分:3)
这意味着sqlite3_column_text返回NULL。当列为NULL时,它返回NULL。