ios - 哪个MagicalRecord保存方法

标签 ios objective-c core-data magicalrecord

我有一个 NSOperation 子类,它正在下载数据并将其导入 CoreData。

完成此操作后,我想保存上下文并将其合并到默认上下文中。

保存不是在 block 中完成的,它只是同步执行,因为它已经在 BG 线程中。

完成更改后,我应该使用哪种 MR 保存方法?

它们有几十个,但不确定每个都做什么。

我应该使用...

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

或者我应该在...中进行所有更改

+ (void)saveUsingCurrentThreadContext...

我希望它是同步的,以便我可以控制操作的结束。

至少有人可以解释不同保存之间的差异。

最佳答案

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

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

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

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

关于ios - 哪个MagicalRecord保存方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551292/

相关文章:

c++ - 在 Objective-C 实例中隐式包装 C++ 功能

iPhone:UIWebview 在 safari 中打开超链接

ios - Swift:单元格 TableviewCell 中的手势不起作用

ios - 未找到框架 GoogleToolboxForMac

iphone - 如何访问项目中的本地文件

ios - 在核心数据中使用日期属性在 TableView Controller 中创建节标题

ios - Xcode 4 CoreData 可视化设置数据

ios - 访问 indexPath.row 字段变量

ios - 如何在后台模式下获取当前位置并在后台模式下继续将该位置发送到服务器

ios - 如何在 Algolia 中同时即时搜索多个索引? swift