Ios 准备失败:sqlite内存不足

Ios 准备失败:sqlite内存不足,ios,sqlite,Ios,Sqlite,所以我得到了这个错误:准备失败“内存不足”。有人知道为什么会这样吗?注意:我测试了我的sql语句。它工作得很好。另外,我正在检查是否在另一个方法中打开数据库。它开得很好。任何帮助都将不胜感激。谢谢 +(NSArray *) fetchListForFirstLEvelCategory { NSMutableArray * array = [[NSMutableArray alloc]init]; NSString * query; query = [NSS

所以我得到了这个错误:准备失败“内存不足”。有人知道为什么会这样吗?注意:我测试了我的sql语句。它工作得很好。另外,我正在检查是否在另一个方法中打开数据库。它开得很好。任何帮助都将不胜感激。谢谢

+(NSArray *) fetchListForFirstLEvelCategory
{


    NSMutableArray * array = [[NSMutableArray alloc]init];

    NSString * query;

        query = [NSString stringWithFormat:@"select mobile_menu.title from sup_pick join sup_mast as mobile_menu on mobile_menu.custom_link1 = sup_pick.key_id and mobile_menu.show_id = '1D2EA159-A312-4FB5-8FE5-B95879B242BB' and mobile_menu.type = 996 and mobile_menu.active = 1 and mobile_menu.status = 1 where sup_pick.client_id = '2517EFF6-8063-4454-BA5F-23679F51AD5A' and sup_pick.active = 1 and sup_pick.parent_key = 'CB18E277-23E9-4232-A20C-AD4D051C578B' and sup_pick.field_name like '%%0000' Order by sup_pick.field_name,mobile_menu.display_order"];


        const char *query_stmt = [query UTF8String];

    sqlite3_stmt * sql;

    if (sqlite3_prepare_v2(db, query_stmt, -1, &sql, NULL) == SQLITE_OK)
        {

            while (sqlite3_step(sql)==SQLITE_ROW)
            {


                    NSString* test= [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 0)];

                    [array addObject:test];



            }

            return array;


        }
    NSLog(@"%s Prepare failure '%s' (%1d)", __FUNCTION__, sqlite3_errmsg(db), sqlite3_errcode(db));

        return nil;

}
+(NSArray *) fetchListForFirstLEvelCategory
{


    NSMutableArray * array = [[NSMutableArray alloc]init];

    NSString * query;

        query = [NSString stringWithFormat:@"select mobile_menu.title from sup_pick join sup_mast as mobile_menu on mobile_menu.custom_link1 = sup_pick.key_id and mobile_menu.show_id = '1D2EA159-A312-4FB5-8FE5-B95879B242BB' and mobile_menu.type = 996 and mobile_menu.active = 1 and mobile_menu.status = 1 where sup_pick.client_id = '2517EFF6-8063-4454-BA5F-23679F51AD5A' and sup_pick.active = 1 and sup_pick.parent_key = 'CB18E277-23E9-4232-A20C-AD4D051C578B' and sup_pick.field_name like '%%0000' Order by sup_pick.field_name,mobile_menu.display_order"];


        const char *query_stmt = [query UTF8String];

    sqlite3_stmt * sql;

    if (sqlite3_prepare_v2(db, query_stmt, -1, &sql, NULL) == SQLITE_OK)
        {

            while (sqlite3_step(sql)==SQLITE_ROW)
            {


                    NSString* test= [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 0)];

                    [array addObject:test];



            }

            return array;


        }
    NSLog(@"%s Prepare failure '%s' (%1d)", __FUNCTION__, sqlite3_errmsg(db), sqlite3_errcode(db));

        return nil;

}

这通常表示您没有在应该关闭的时候关闭准备好的语句等。(因为我没有在您的代码中看到对sqlite3_finalize的调用,所以我怀疑这是您的问题。)提示:这不是世界上最伟大的,但它相当不错。在使用不熟悉的函数之前,最好先查看相应的部分。如果数据库引用为
nil
,则会出现“内存不足”错误。