iOS中MagicalRecord的动作方法有啥区别

Posted

技术标签:

【中文标题】iOS中MagicalRecord的动作方法有啥区别【英文标题】:What is the Difference between Action Methods of MagicalRecord in iOSiOS中MagicalRecord的动作方法有什么区别 【发布时间】:2015-06-12 10:54:36 【问题描述】:

请解释下面提到的方法之间的区别。

- (void)save:  
- (void)saveOnlySelfAndWait;    
- (void)saveToPersistentStoreAndWait;

注意:有人已经发布了这个问题的答案,但我对这个答案不满意,所以任何人都可以分享正确和简单的答案。

【问题讨论】:

与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?。顺便说一句,这是“提前致谢”,而不是“在先致谢”。 @JohnSaunders 感谢您的建议,它将对我有所帮助。 @JohnSaunders 如果您知道上述方法之间的神奇记录差异,请清除我。 如果我知道答案,我会回答的。 【参考方案1】:

经过深思熟虑,我得到了答案......

我承认这些方法没有很好地记录。但是,它们很好地遵循了 Core Data 嵌套上下文模型。

有了 MagicalRecord,不要在NSManagedObjectContext 上使用save:。 MagicalRecord 内置了所有这些额外的错误处理、日志记录和完成处理程序。您想使用它们。

您似乎知道数据需要去哪里(从一个上下文到根)。这取决于您需要使用哪种保存方法的层次结构。如果您只有一层深度(即在 defaultContext 的子上下文中),saveOnlySelfAndWait 将保存到defaultContext。否则,saveToPersistentStoreAndWait 将为您遍历层次结构,一直到数据存储。

andWait 方法是阻塞调用。处理程序完成的调用不是。它们的使用相当简单。

【讨论】:

换句话说:MR_saveOnlySelfAndWait 会在对象空间中同步保存 NSManagedObject,MR_saveToPersistentStoreAndWait 会在persist中同步对象您的数据存储此外 MR_save: 方法已弃用,将在下一版本中删除。 @CanATAC 感谢您的回复。好答案。 我希望我能有所收获;)没关系,很高兴能帮上忙!

以上是关于iOS中MagicalRecord的动作方法有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

关于 MagicalRecord,MR_saveNestedContexts 和 MR_save 方法有啥区别

MagicalRecord 中的 MR_saveToPersistentStoreWithCompletion 方法和 MR_saveToPersistentStoreAndWait 方法有啥区别

iOS MagicalRecord:加入

MagicalRecord 在 ios 8.1 的第一次运行时崩溃

MagicalRecord 在 ios8 上崩溃

GPIOx_BSRR 这个寄存器的功能既有设置又有清除,为啥还要GPIOx_BRR这个呢?啥区