带有 MagicalRecord 的 JSONModel

Posted

技术标签:

【中文标题】带有 MagicalRecord 的 JSONModel【英文标题】:JSONModel with MagicalRecord 【发布时间】:2013-06-21 08:57:20 【问题描述】:

MagicalRecord 是一个很好的库来管理 coredata。在我的应用程序中,我必须处理来自 web 服务的 json 来管理我们正在使用的 Json JSONModel。现在的问题是我必须使用两个单独的类来管理魔法记录和 jsonModel。

有什么方法可以将这两者结合起来吗? 提前致谢。

【问题讨论】:

如果你是直接将所有从web服务接收到的数据导入核心数据,你可以使用托管对象本身,但你需要自己编写一些方法,例如create或update等。 @Anupdas 那是只使用Magical Record,不是吗? 我猜你已经知道 MagicalRecord 有一些不错的导入功能。这是 MagicalRecord 的作者关于导入的一个很好的tutorial。这将消除在将 JSON 添加到核心数据之前必须将其解析为其他模型对象的需要。 【参考方案1】:

我个人所做的是向我的所有 JSONModel 实例添加一个名为:

-(id)mergeWithContext:

每当我从 Web 获取 JSON 对象时,JSONModel 都会为我解析它并将数据转换为我需要的数据,然后如果我想将其保存到 CoreData,我只需调用 mergeWithContext: 并将当前上下文传递给它。

在我的 mergeWithContext: 方法中,我只是创建一个与当前 JSONModel 对象匹配的新实体并复制所有值。 (实际上,我还检查 CoreData 中是否已经存在具有模型 ID 的实体 - 然后我更新它,否则我创建一个新实例。

如果您需要在保存数据时添加一些自定义行为,这并不难,而且您可以获得相当大的灵活性。

mergeWithContext: 当然返回实体本身,所以如果需要,我可以进一步使用它。

【讨论】:

感谢这个想法。你能给任何示例代码如何实现这个消息吗?

以上是关于带有 MagicalRecord 的 JSONModel的主要内容,如果未能解决你的问题,请参考以下文章

带有primaryRelationshipKey的MagicalRecord

带有 MagicalRecord 的 JSONModel

带有 UITableView 示例的 MagicalRecord

带有核心数据/MagicalRecord 意外行为的 iOS 单元测试

带有 MagicalRecord 庞大数据集的 UItableView

MagicalRecord 入门