合并MainContext阻止UI

时间:2014-04-26 19:37:43

标签: ios core-data merge

我正在使用Core Data并学习如何完成工作。我目前正在从主要上下文中读取所有数据并将所有数据保存在后台上下文中。我注册了保存背景上下文的通知。当我合并私有上下文中保存的更改时,ui会暂时停止。有没有办法防止这个小故障?

以下是我的上下文保存的内容:

@synchronized(self) {
    [self.mainManagedObjectContext performBlock:^{
        [self.mainManagedObjectContext mergeChangesFromContextDidSaveNotification:notification];
        [[NSNotificationCenter defaultCenter] postNotificationName:ModelDidUpdateNotification
                                                            object:self.mainManagedObjectContext
                                                          userInfo:[notification userInfo]];
    }];
}

我尝试取出多行代码,当我取出合并时,故障就会停止。但是,如果我把它拿出来。我没有在主要背景下得到我需要的更改。

以下是背景上下文保存:

[self.backgroundMainManagedObjectContext performBlock:^
 {
     saveBlock(self.backgroundMainManagedObjectContext);

     if([[NSThread currentThread] isMainThread])
     {
         NSLog(@"Saving on main thread!!");
     }

     if([self.backgroundMainManagedObjectContext hasChanges])
     {
         [self.backgroundMainManagedObjectContext save:&error];
     }
 }];

就核心数据而言,我真的不知道我在做什么。所以任何帮助都会很棒!

0 个答案:

没有答案