在MagicalRecord中MR_saveToPersistentStoreWithCompletion方法和MR_saveToPersistentStoreAndWait方法之间的区别是什么

时间:2015-09-12 04:17:11

标签: ios core-data magicalrecord

我学习如何使用MagicalRecord来操作CoreData,有两种方法MR_saveToPersistentStoreWithCompletion和MR_saveToPersistentStoreAndWait。查看注释,似乎区别在于第一个异步保存更改,后者同步保存更改。

这是他们之间的唯一区别吗?它们如何工作?那些异步和同步保存数据的区别是什么?

我已经查看了他们的源代码,但由于我是初学者,所以无法完全理解,所以有人可以帮忙解释一下吗?谢谢。

1 个答案:

答案 0 :(得分:1)

异步保存在performBlock的保护范围内完成,同步保存在performBlockAndWait的保护范围内完成。

异步保存将立即返回,保存将在后台线程上进行。如果它是主队列上下文,则在当前的runloop迭代完成之后,将在未来的某个时间进行保存。保存完成后,将调用作为完成处理程序传入的代码块,以通知您保存已完成。

同步保存将在方法调用返回之前发生。因此,当方法返回时,您知道所有保存工作已完成,或者遇到错误。

您应该查看Core Data documentation并发性以获取更多详细信息。