核心数据MagicalRecord合并MOCS在线程使用MagicalRecord(https://github.com/magicalpanda)

核心数据MagicalRecord合并MOCS在线程使用MagicalRecord(https://github.com/magicalpanda)

问题描述:

IAM核心数据MagicalRecord合并MOCS在线程使用MagicalRecord(https://github.com/magicalpanda)

这wasnt工作(不marging的MOCS)

- (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]; 
} 

必须与此更换(还应用了FIX https://github.com/magicalpanda/MagicalRecord/pull/221

- (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); 

    }]; 

} 

请告诉我与第一个问题?为什么它不能正常工作,而且这些更改没有合并?

不合并更改的简单事实是我的时间是有限的。我尝试理解和验证所有进来的请求,并且作为一个人的商店意味着我的开源时间(免费,免费,不付费)工作时间更加有限。不过,我相信这个解决方案最终被并入了,但从提交历史来看,这并不明显。

至于为什么没有摆在首位的工作,我的预感是,contextForCurrentThread方法返回的东西是没有用的。 saveInBackground在每次调用新的工作区时会创建一个新的上下文。这是我相信的主要区别。