如何删除错误“: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。