- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在学习如何使用 MagicalRecord 来操作 CoreData,有两种方法 MR_saveToPersistentStoreWithCompletion 和 MR_saveToPersistentStoreAndWait。查看评论,似乎区别在于第一个异步保存更改,后一个同步保存更改。
所以这就是它们之间的唯一区别?他们是如何工作的?异步和同步保存数据有什么区别?
我看过他们的源码,但由于我是初学者,所以不能完全理解,所以有人可以帮忙解释一下吗?谢谢。
最佳答案
异步保存在performBlock
的保护内完成,同步保存在performBlockAndWait
的保护内完成。
异步保存会立即返回,并且保存会在后台线程中发生。如果它是一个主队列上下文,保存将在未来某个时间发生,在当前运行循环迭代完成之后。保存完成后,将调用作为完成处理程序传入的代码块,让您知道保存已完成。
同步保存将在方法调用返回之前发生。因此,当方法返回时,您知道所有保存工作已经完成,或者遇到了错误。
你应该看看 Core Data documentation有关并发性的更多详细信息。
关于ios - MagicalRecord 中的 MR_saveToPersistentStoreWithCompletion 方法和 MR_saveToPersistentStoreAndWait 方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32535109/
我正在学习如何使用 MagicalRecord 来操作 CoreData,有两种方法 MR_saveToPersistentStoreWithCompletion 和 MR_saveToPersist
我是一名优秀的程序员,十分优秀!