我想实现一个响应式UI下载和解析大型数据集,并使用Core Data保存它。
我的设置:
我在自定义视图控制器中显示下载的内容。我不使用NSFetchedResultsController。
有3个MOC:
我正在批量导入 - 我按照以下方式每50个项目执行MOC保存:
NSError *error;
[backgroundMOC save:&error];
NSManagedObjectContext *masterMOC = backgroundMOC.parentContext; //set during initialization
[masterMOC performBlock:^{
NSError *parentContextError = nil;
[masterMOC save:&parentContextError];
}];
我希望在保存masterMOC之后进行mainMOC的更改。如果我在masterMOC保存时尝试访问随机托管对象的某些关系(保存需要一些时间),则UI会一直挂起,直到保存完成。
问题:如何在masterMOC保存时避免UI冻结?
答案 0 :(得分:0)
您的问题可能是数据存储在写入时阻塞。因此,要么使数据存储非阻塞(在您的情况下这可能或可能不可能),或者如果不可行,则使访问器不阻塞。在后一种情况下,GUI不会挂起,但在访问结果返回之前它也不会更新。