【问题标题】: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 如果您知道上述方法之间的神奇记录差异,请清除我。
  • 如果我知道答案,我会回答的。

标签: ios core-data magicalrecord actionmethod


【解决方案1】:

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

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

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

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

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

【讨论】:

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