как удалить ошибку "[NSString stringWithUTF8String:]: NULL cString' "?

Я sqlite3 test3.в SQL

3 ответов


а не просто

... = [NSString stringWithUTF8String:
       (char *)sqlite3_column_text(compiledStatement, 15)]

вы хотите использовать что-то вроде

... = ((char *)sqlite3_column_text(compiledStatement, 15)) ? 
      [NSString stringWithUTF8String:
       (char *)sqlite3_column_text(compiledStatement, 15)] : nil;

после использования тенарного оператора для получения значений из БД вам нужно проверить, равно ли значение 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.