I am making an sqlite3
test3.sql database,
making table as
CREATE TABLE rest (name VARCHAR(100), price VARCHAR(100));
table is successfully created but now when I am using a method for inserting and retrieving data, then getting error,,,
The error is on line
NSString *str = [NSString stringWithUTF8String:
(char *)sqlite3_column_text(compiledStatement, 1)];
the error is +[NSString stringWithUTF8String:]: NULL cString'
What is this error, how can I remove it?
Instead of just having
... = [NSString stringWithUTF8String:
(char *)sqlite3_column_text(compiledStatement, 15)]
You want to use something like
... = ((char *)sqlite3_column_text(compiledStatement, 15)) ?
[NSString stringWithUTF8String:
(char *)sqlite3_column_text(compiledStatement, 15)] : nil;
After using the tenary operator to get the values from the db you have to check if the value is nil. Otherwise the program will still crash.
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];
}
It means that sqlite3_column_text returns NULL. It returns NULL when the column is NULL.