为什么我在sqlite3 IOS中尝试调用更新时会出现“内存不足”的错误?

时间:2014-08-26 14:30:35

标签: ios sqlite

当我尝试执行我的功能时,我会从我的“内存”中注明消息为什么? 我看到Step1和Error - 内存不足

- (BOOL)updateLocationsAndSetFlag:(UserLocation *)location {

if (sqlite3_open([sqLiteDb UTF8String], &_database) == SQLITE_OK) {

    const char *sqlStatement = "update locations set flag = 1 where locations.uniqueId = ?;";
    sqlite3_stmt *compiledStatement;

    NSLog(@"step 1");
     if (sqlite3_prepare_v2(_database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
        NSLog(@"step 2");
     } else
         NSLog(@"Error is %s", sqlite3_errmsg((__bridge sqlite3 *) (database)));// in this part we can see Error is out of memory
 }
 return YES;

1 个答案:

答案 0 :(得分:1)

您看到“内存不足”错误,因为您使用_database填充sqlite3_open,但是当您致电时,您正在引用其他实例变量database sqlite3_errmsg()。其他sqlite3指针显然仍为NULL,每当您使用sqlite3_errmsg()数据库指针调用NULL时,它都会报告误导性的“内存不足”消息。