MagicalRecord 中的 MR_saveToPersistentStoreWithCompletion 方法和 MR_saveToPersistentStoreAndWait 方法有什么区别

what's the difference between MR_saveToPersistentStoreWithCompletion method and MR_saveToPersistentStoreAndWait method in MagicalRecord

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

所以这就是它们之间的唯一区别?他们是如何工作的?异步和同步保存数据有什么区别?

我看了他们的源码,但我是初学者,不能完全理解,请问有没有人帮忙解释一下?谢谢。

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

异步保存将 return 立即进行,保存将在后台线程上进行。如果它是一个主队列上下文,保存将在未来某个时间发生,在当前运行循环迭代完成之后。保存完成后,将调用作为完成处理程序传入的代码块,让您知道保存已完成。

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

您应该查看 Core Data documentation 有关并发的详细信息。