网络魔法记录和适当使用

Posted

技术标签:

【中文标题】网络魔法记录和适当使用【英文标题】:Afnetworking magical record and appropriate use 【发布时间】:2013-05-26 17:21:43 【问题描述】:

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

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

在同步结束时,我正在执行保存,因此所有数据都保存在 perisitent 存储中。

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

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

【问题讨论】:

你考虑过RestKit吗? 我不知道这个框架,但在快速浏览后似乎我无法使用它,因为服务器端根本不是 Rest :( 发布代码示例会有所帮助 【参考方案1】:

终于明白我做错了什么。

在分离的线程中使用 MagicalRecord 是重点,因为 MagicalRecord 会为不同的线程创建不同的 NSManagedContext。

在深入阅读了有关 CoreData 和多线程的 Apple 文档后,我指出,如果您可以确保不会同时影响任何对象,则可以在同一个 NSManagedContext 上完成不同线程的工作。

因此,通过使用带有专用和单个 NSManagedObjectContext 的顺序 dispatch_queue,它完成了这项工作。

希望这可以帮助其他人。

【讨论】:

以上是关于网络魔法记录和适当使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用魔法记录保存 2 个实体

使用魔法记录进行核心数据迁移

GHUnit : 测试魔法记录代码

如何在python中实现一个自定义的列表或字典

魔法记录未编译

魔法方法