Ios 什么';MagicalRecord中的MR_savetopersistentstore with completion方法与MR_savetopersistentstore and wait方法的区别是什么

Ios 什么';MagicalRecord中的MR_savetopersistentstore with completion方法与MR_savetopersistentstore and wait方法的区别是什么,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,我正在学习如何使用MagicalRecord操作Core数据,有两种方法MR_SaveToPersistentStore with Completion和MR_SaveToPersistentStore and Wait。查看注释,区别似乎是第一个异步保存更改,第二个同步保存更改 这就是他们之间的唯一区别?它们是如何工作的?异步和同步保存数据有什么区别 我已经研究了他们的源代码,但不能完全理解,因为我是一名初学者,所以有人能帮我解释一下吗?谢谢。异步保存是在performBlock的保护内完成的

我正在学习如何使用MagicalRecord操作Core数据,有两种方法MR_SaveToPersistentStore with Completion和MR_SaveToPersistentStore and Wait。查看注释,区别似乎是第一个异步保存更改,第二个同步保存更改

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


我已经研究了他们的源代码,但不能完全理解,因为我是一名初学者,所以有人能帮我解释一下吗?谢谢。

异步保存是在
performBlock
的保护内完成的,同步保存是在
performBlock和wait
的保护内完成的

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

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


有关更多详细信息,请参阅on concurrency。

谢谢您的回复。我现在明白了。我将阅读核心数据文档。