我将sqlite用于我的简单iOS应用程序。问题是我无法从查询中得到结果。我将跳过负责打开数据库的代码。它有效。
NSString *query = @"SELECT * FROM tickets LIMIT 0,1";
if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK)
{
NSString *strResult = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
NSLog(@"%@", strResult);
sqlite3_finalize(statement);
}
这里的应用程序崩溃与一条消息:
NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]: NULL cString'
我100%确信查询
SELECT * FROM tickets LIMIT 0,1
返回不为NULL的结果。我已经用sqlite客户端测试了上面的查询,它运行良好。
这里怎么了?
您没有评估您的语句。您应该使用:
int sqlite3_step(sqlite3_stmt*);
在CCD_ 1之后。