2013-06-21 30 views
4

MagicalRecord是一个很好的库来管理coredata。在我的应用程序,我必须处理JSON从Web服务管理JSON我们使用JSONModel。现在问题是我必须使用两个单独的类来管理神奇记录和jsonModel。JSONModel与MagicalRecord

有什么办法可以将这两种方法结合起来? 在此先感谢。

+0

如果您直接将从Web服务接收到的所有数据导入到核心数据中,则可以使用托管对象本身,但您需要自己编写几个方法,例如创建或更新等。 – Anupdas

+0

@Anupdas只有魔法记录,不是吗? – Eldhose

+2

我想你知道这个事实,MagicalRecord有一些很好的导入功能。这是MagicalRecord作者关于导入的一个很好的[教程](http://www.cimgf.com/2012/05/29/importing-data-made-easy/)。这将消除在将JSON添加到核心数据之前解析JSON到其他模型对象的需要。 – Anupdas

回答

4

我亲手做的是添加到我的所有JSONModel实例称为方法:

- (ID)mergeWithContext:

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

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

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

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

+0

感谢您的这个想法。你给任何示例代码如何实现此消息? – Eldhose