如何删除错误"[NSString stringWithUTF8String:]:NULL cString'"?

Cha*_*har 9 database sqlite iphone ios

我正在创建一个sqlite3 test3.sql数据库,使表成为

CREATE TABLE rest (name VARCHAR(100), price VARCHAR(100));
Run Code Online (Sandbox Code Playgroud)

表已成功创建,但现在当我使用方法插入和检索数据,然后得到错误,,,

错误在线

NSString *str = [NSString stringWithUTF8String:
                 (char *)sqlite3_column_text(compiledStatement, 1)];
Run Code Online (Sandbox Code Playgroud)

错误是 +[NSString stringWithUTF8String:]: NULL cString'

这是什么错误,如何删除它?

Mar*_*arc 29

而不是只有

... = [NSString stringWithUTF8String:
       (char *)sqlite3_column_text(compiledStatement, 15)]
Run Code Online (Sandbox Code Playgroud)

你想用类似的东西

... = ((char *)sqlite3_column_text(compiledStatement, 15)) ? 
      [NSString stringWithUTF8String:
       (char *)sqlite3_column_text(compiledStatement, 15)] : nil;
Run Code Online (Sandbox Code Playgroud)


Ale*_*Cio 5

使用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];
}
Run Code Online (Sandbox Code Playgroud)