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

时间:2011-02-11 10:50:11

标签: ios iphone database sqlite

我正在制作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'

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

3 个答案:

答案 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。

相关问题