0

我正在尝试做一个小班来管理Sqlite。我想将从数据库检索到的数据存储到对象数组中,但应用程序崩溃(BAD_ACCESS)

我的代码:

- (ArrayList *) execNonQuery: (char *) query {
    @try {
        sqlite3_stmt *sqlStat;
        ArrayList *dataList;

        if(sqlite3_prepare_v2(self->dbHandle, query, -1, &sqlStat, NULL) == SQLITE_OK) {
            dataList = [[ArrayList alloc] init];

            while (sqlite3_step(sqlStat) == SQLITE_ROW) {
                NSMutableArray *list = [[NSMutableArray alloc] init];

                for (int i = 0; i < sqlite3_column_count(sqlStat); i++) {
                    // CRASH
                    id data = (__bridge id)(sqlite3_column_value(sqlStat, i)); 

                    [list addObject: data]; 
                }

                [dataList addList:list];
            }
        }

        sqlite3_finalize(sqlStat);

        return dataList;
    }
    @catch (NSException *exception) {
        NSLog(@"Excepción capturada: %@", [exception reason]);

        return NULL;
    }
}

我认为问题在于当我尝试这样做时:

id data = (__bridge id)(sqlite3_column_value(sqlStat, i));

注意: ArrayList 类只是 NSMutableArray 的 NSMutableArray

我是目标 c 的菜鸟,刚刚学习……抱歉拼写错误。

此致。

4

0 回答 0