2013-06-21 76 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