无法使用异步方法更新数据库

时间:2017-08-26 09:47:23

标签: ios objective-c database asynchronous

我正在尝试使用异步任务将某些值更新到我的数据库但是我收到此错误:

  

未插入值。错误:SQL逻辑错误或缺少数据库

以下是我用来更新db的代码:

- (void)persistResponseData:(NSDictionary *)data database:(DataBaseHandler *)database completion:(void (^)(NSError *error))completion {

    NSDictionary *contentData = [data objectForKey:@"contentdata"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{


        // Process Contents
        NSArray *contents = [contentData objectForKey:@"contents"];
        if (contents != nil) {
            [self storeData:contents inTable:@"contents" database:database withCustomIdentifier:nil];
        }

    });

    }

此代码行出现错误,错误代码为EXC_BAD_ACCESS:

if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil)==SQLITE_OK)
当我尝试在storeData函数内确认是否存在记录时调用

如果我删除了异步部分

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

然后代码运行没有任何问题,数据库得到更新。 知道如何解决这个问题吗?

0 个答案:

没有答案