iOS 中 MagicalRecord 的操作方法有什么区别

What is the Difference between Action Methods of MagicalRecord in iOS

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

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

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

经过思考和搜索,我得到了答案...

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

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

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

andWait 方法是阻塞调用。完成处理程序的调用不是。这些在使用上相当直接。