哪个MagicalRecord保存方法

时间:2013-03-21 15:11:48

标签: ios objective-c core-data magicalrecord

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

一旦我完成了这项工作,我想保存上下文并将其合并到默认上下文中。

保存不是在块中进行的,它只是同步进行,因为它已经在BG线程中。

一旦我完成了我应该使用MR保存方法的更改吗?

有几十个,并不确定每个人做了什么。

我应该使用......

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

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

+ (void)saveUsingCurrentThreadContext...

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

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

1 个答案:

答案 0 :(得分:14)

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

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

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

  3. {{1}}方法阻止了来电。完成处理程序的调用不是。这些在使用中相当直接。