Cocoa 核心数据MagicalRecord在线程中合并MOC
我正在使用MagicalRecord(https://github.com/magicalpanda) 这不起作用(没有将主运行中心边缘化) 必须将其替换为此(也应用了修复)Cocoa 核心数据MagicalRecord在线程中合并MOC,cocoa,core-data,magicalrecord,Cocoa,Core Data,Magicalrecord,我正在使用MagicalRecord(https://github.com/magicalpanda) 这不起作用(没有将主运行中心边缘化) 必须将其替换为此(也应用了修复) 第一个有什么问题?为什么它不起作用而更改没有合并?不合并更改的简单事实是我的时间有限。我试图理解并验证所有的请求,而作为一个人的商店意味着我现在从事开源(免费、免费、不付费)工作的时间更加有限。但是,我相信修复程序最终被合并了,只是从提交历史中看不出 至于为什么它一开始不起作用,我的直觉是contextForCurrent
第一个有什么问题?为什么它不起作用而更改没有合并?不合并更改的简单事实是我的时间有限。我试图理解并验证所有的请求,而作为一个人的商店意味着我现在从事开源(免费、免费、不付费)工作的时间更加有限。但是,我相信修复程序最终被合并了,只是从提交历史中看不出 至于为什么它一开始不起作用,我的直觉是contextForCurrentThread方法返回了一些无用的东西。saveInBackground每次调用时都会创建一个新的上下文,为您提供一个新的工作区。这是我认为的主要区别
- (void) foo {
NSBlockOperation * operation = [NSBlockOperation blockOperationWithBlock:^{
NSManagedObjectContext * localContext = [NSManagedObjectContext MR_contextForCurrentThread];
// parsing and core data operation on localContext here, savin objectIDs
[localContext MR_saveNestedContexts];
[[NSOperationQueue mainQueue] addOperationWithBlock:^(){
onParseFinished(parsedItemObjectIDs);
}];
}];
[self.operationQueue addOperation:operation];
}
- (void) foo {
__block NSMutableArray * parsedItemsObjectIDs;
__block Class parsedItemsClass = [NSObject class];
[MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext *localContext){
// parsing and core data operation on localContext here, savin objectIDs
...
} completion:^(void){
onParseFinished(parsedItemsObjectIDs);
}];
}