我正在学习iOS的sqlite概念。在学习阶段我遇到了问题,问题是:
当我在if语句之后放置NSLog时,它没有给出任何错误。见图:
但是当我删除NSLog时,编译器会给我错误,请参阅图像:
为什么会出现此错误,我还没有找到。我的代码是:
-(void)runQuery:(const char *)query isQueryExecutable:(BOOL)queryExecutable{
sqlite3 *sqlite3Database;
NSString *databasePath= [self.documentsDirectory stringByAppendingPathComponent:self.databaseFileName];
if(self.arrResults != nil){
[self.arrResults removeAllObjects];
self.arrResults= nil;
}
self.arrResults =[[NSMutableArray alloc] init];
if(self.arrColumnNames != nil){
[self.arrColumnNames removeAllObjects];
self.arrColumnNames= nil;
}
self.arrColumnNames= [[NSMutableArray alloc] init];
BOOL openDatabaseResult= sqlite3_open([databasePath UTF8String],&sqlite3Database);
if(openDatabaseResult==SQLITE_OK)
sqlite3_stmt *compiledStatement;
BOOL prepareStatementResult = sqlite3_prepare_v2(sqlite3Database,query,-1,&compiledStatement,NULL);
}
我正在通过以下链接学习sqlite教程:https://www.appcoda.com/sqlite-database-ios-app-tutorial/
提前致谢。
答案 0 :(得分:2)
您的问题似乎是您在该行之前的if语句末尾忘记了一个括号。
if(openDatabaseResult==SQLITE_OK)
{
sqlite3_stmt *compiledStatement;
BOOL prepareStatementResult = sqlite3_prepare_v2(sqlite3Database,query,-1,&compiledStatement,NULL);
}