我正在建立基于AFNetworking和MagicalRecord的新闻应用程序。 我喜欢用àserver执行à后台同步 1)检索现有类别 2)为每个类别检索所有文章。
所以我正在使用一个nsoperationqueue,其中我添加了我需要的所有afnetworking操作。 我正在创建一个调度队列并将其设置为所有afnetworking操作的成功队列,因此不会在主线程中执行完成块。
在同步结束时,我正在执行保存,因此所有数据都保存在perisitent商店中。
我遇到以下问题: 无法建立关系,因为文章和类别是在不同的线程中创建的:我总是有例外。 何时以及如何保存核心数据对象? 在阅读了关于魔法记录的数千篇文章后,我完全失去了这一点。
感谢所有这个精彩网站的ios大师:)
答案 0 :(得分:0)
最后,我理解我做错了什么。
在分离的线程中使用MagicalRecord是因为MagicalRecord为不同的线程创建了不同的NSManagedContext。
在深入阅读CoreData和多线程上的Apple文档后,我指出如果可以确保不会同时影响任何对象,则可以在同一个NSManagedContext上完成不同线程的工作。
因此,通过使用顺序dispatch_queue,使用专用的单个NSManagedObjectContext,它完成了这项工作。
希望这可以帮助他人。