如何删除错误“:NULL cString’”?
我正在创建一个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'
这个错误是什么,我怎么能删除它?
而不是只有
... = [NSString stringWithUTF8String: (char *)sqlite3_column_text(compiledStatement, 15)]
你想用类似的东西
... = ((char *)sqlite3_column_text(compiledStatement, 15)) ? [NSString stringWithUTF8String: (char *)sqlite3_column_text(compiledStatement, 15)] : nil;
使用tenary运算符从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]; }
这意味着sqlite3_column_text返回NULL。 当列为NULL时,它返回NULL。