If Statement 在 iOS 中使用 sqlite 语句给出错误

If Statement give error with sqlite statement in iOS

我正在学习 iOS 的 sqlite 概念。在学习阶段我遇到了一个问题,问题是:

当我将 NSLog 放在 if 语句之后时,它没有给出任何错误。看图:

但是当我删除 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);


}

我正在学习这个 link 的 sqlite 教程:https://www.appcoda.com/sqlite-database-ios-app-tutorial/

提前致谢。

您的问题似乎是您忘记了在该行之前的 if 语句末尾的括号。

if(openDatabaseResult==SQLITE_OK)

{
    sqlite3_stmt *compiledStatement;

    BOOL prepareStatementResult = sqlite3_prepare_v2(sqlite3Database,query,-1,&compiledStatement,NULL);
}