Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AFP记录和适当使用_Ios_Core Data_Afnetworking_Magicalrecord - Fatal编程技术网

Ios AFP记录和适当使用

Ios AFP记录和适当使用,ios,core-data,afnetworking,magicalrecord,Ios,Core Data,Afnetworking,Magicalrecord,我正在构建一个基于AFNetworking和MagicalRecord的新闻应用程序。 我必须与服务器进行后台同步,以便 1) 检索现有类别 2) 对于每个类别,检索所有文章 因此,我使用了一个nsoperationqueue,在其中添加了我需要的所有网络操作。 我正在创建一个调度队列,并将其设置为所有afnetworking操作的successqueue,以便完成块不会在主线程中执行 在同步结束时,我正在执行一个保存,以便所有数据都保存在PerSitent存储中 我遇到以下问题: 无法建立关系

我正在构建一个基于AFNetworking和MagicalRecord的新闻应用程序。 我必须与服务器进行后台同步,以便 1) 检索现有类别 2) 对于每个类别,检索所有文章

因此,我使用了一个nsoperationqueue,在其中添加了我需要的所有网络操作。 我正在创建一个调度队列,并将其设置为所有afnetworking操作的successqueue,以便完成块不会在主线程中执行

在同步结束时,我正在执行一个保存,以便所有数据都保存在PerSitent存储中

我遇到以下问题: 无法建立关系,因为文章和类别是在不同的线程中创建的:我总是有一个例外。 何时以及如何保存核心数据对象? 在阅读了数千篇关于magicalrecord的文章后,我完全不明白这一点


感谢这个精彩网站的所有ios大师:)

最后,我明白我做错了什么

在分开的线程中使用MagicalRecord是关键,因为MagicalRecord会为不同的线程创建不同的NSManagedContext

在深入阅读了关于CoreData和多线程的Apple文档之后,我指出,如果您能够确保所有对象都不会同时受到影响,那么可以在同一个NSManagedContext上处理不同的线程

因此,通过使用一个带有专用和单个NSManagedObjectContext的顺序分派队列,它完成了任务


希望这可以帮助其他人。

您考虑过RestKit吗?我不知道这个框架,但在快速查看之后,我似乎无法使用它,因为服务器端根本不是Rest:(发布代码示例会有所帮助。)