使用MagicalRecord的JSONModel

4

MagicalRecord 是一个很好的用于管理coredata的库。在我的应用程序中,我需要处理来自网络服务的json数据,为了管理Json,我们使用JSONModel。现在的问题是我必须使用两个单独的类来管理magical record和jsonModel。

有没有办法将这两个组合起来呢? 提前感谢。


如果您直接将从 Web 服务接收到的所有数据导入核心数据,可以利用托管对象本身,但是您需要自己编写一些方法,例如创建或更新等。 - Anupdas
@Anupdas 那是使用 Magical Record 对吧? - Eldhose
2
我猜你已经知道MagicalRecord有一些很好的导入功能。这是MagicalRecord作者关于导入的一个不错的教程。这将消除在将JSON解析为其他模型对象之前添加到核心数据中的需要。 - Anupdas
1个回答

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

-(id)mergeWithContext:

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

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

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

mergeWithContext:当然返回实体本身,因此如果需要,我可以进一步处理它。


谢谢您提供这个想法。您能否提供一些示例代码来实现这个消息? - Eldhose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接