sqlite3_stmt提供Exc_Bad_Access

时间:2015-05-26 05:42:49

标签: sqlite

这是我在这里使用AFSQLManager的代码任何帮助如何解决这个问题: 这是我得到线程的地方并注意当我不评论if条件时它不在if条件内部我也尝试在if条件之前NSLog语句并给我相同的线程任何帮助

-(void)performQuery:(NSString *)query withBlock:(completionBlock)completion {

    NSString *fixedQuery = [query stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

    NSLog(@"HERE 100d : %@",fixedQuery);

    sqlite3_stmt *statement;

   // if (sqlite3_prepare_v2(_database, [fixedQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {

        // NSLog(@"HERE 100a : %@", statement);

        while (sqlite3_step(statement) == SQLITE_ROW) {  //HERE WHERE I GOT THE THREAD.

            NSMutableArray *row = [NSMutableArray array];
             NSLog(@"HERE 100b");
            for (int i = 0; i < sqlite3_column_count(statement); i++) {
                NSLog(@"HERE 100c");
                [row addObject:((char *)sqlite3_column_text(statement, i)) ? [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, i)] : [NSNull null]];
            }

            if (completion) {
                NSLog(@"HERE 100e");
                completion(row, nil, NO);
            }
        }
        NSLog(@"HERE 100f");

        sqlite3_finalize(statement);
        completion(nil, nil, YES);
        NSLog(@"HERE 100g");
   // }
    NSLog(@"HERE 100h");
}

1 个答案:

答案 0 :(得分:0)

sqlite3_step()崩溃,因为statement从未初始化,因为您注释了对sqlite3_prepare_v2()的调用。

如果sqlite3_prepare_v2()之类的功能失败,您可以致电sqlite3_errmsg()以获取有用的错误消息。