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

时间:2016-09-02 05:01:06

标签: ios objective-c sqlite if-statement xcode7

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

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

enter image description here

但是当我删除NSLog时,编译器会给我错误,请参阅图像:

enter image description here

为什么会出现此错误,我还没有找到。我的代码是:

-(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/

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

if(openDatabaseResult==SQLITE_OK)

{
    sqlite3_stmt *compiledStatement;

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