2014-05-19 88 views
0

對於使用MagicalRecord與核心數據支持的sqlite數據庫進行通信的iOS應用程序,應該如何通過Web服務調用保存大型json數據?MagicalRecord:保存背景

由於MagicalRecord(MR)具有一個名爲'rootContext'的NSManagedObjectContext,它具有NSPrivateQueueConcurrencyType併發類型,該類型與持久性存儲關聯爲最高上下文。然後是另一個名爲'defaultContext'的NSManagedObjectContext,帶有一個NSMainQueueConcurrencyType類型[看似用於處理主線程上的核心數據]。這個「默認上下文」有一個父級NSManagedObjectContext作爲「根上下文」。

我的問題是運行下載包含多個核心數據實體的json數據需要持久保存到sqlite的大背景,我們是否應該使用NSPrivateQueueConcurrencyType創建一個上下文,該父上下文是rootContext還是多個上下文?

應該使用什麼方法,任何想法?

回答

0

這取決於數據是什麼 - 即,數據之間是否存在關係,這決定了數據的多個部分是否可以同時加載。您只需要一個上下文和一個後臺線程,但是如果數據允許,則可以使用更多的上下文和後臺線程,並且可以提高性能(您將需要測試和配置文件)。有很多上下文不太可能有幫助(或者實際上只是讓事情變慢)。

+0

RestKit可以幫助你,它會用你的一些配置數據來管理導入和線程。 – Wain

+0

是的底層sqlite數據庫確實有關係和數據要解析的存儲在SQLite中也出現了關係形式。即使我用一個線程和一個上下文去解​​決問題,那麼這個上下文的父類是什麼?它是MagicalRecord中的rootContext或默認上下文嗎? – user2788672

+0

通常是根上下文。 – Wain