Core data MagicalRecord:后台保存

Core data MagicalRecord:后台保存,core-data,ios7,magicalrecord-2.2,Core Data,Ios7,Magicalrecord 2.2,对于使用MagicalRecord与核心数据支持的sqlite数据库通信的iOS应用程序,通过web服务调用保存大型json数据的方法应该是什么 因为MagicalRecord(MR)有一个名为“rootContext”的NSManagedObjectContext,其NSPrivateQueueConcurrencyType并发类型与持久存储关联为最顶层上下文。然后是另一个名为“defaultContext”的NSManagedObjectContext,其类型为NSMainQueueConc

对于使用MagicalRecord与核心数据支持的sqlite数据库通信的iOS应用程序,通过web服务调用保存大型json数据的方法应该是什么

因为MagicalRecord(MR)有一个名为“rootContext”的NSManagedObjectContext,其NSPrivateQueueConcurrencyType并发类型与持久存储关联为最顶层上下文。然后是另一个名为“defaultContext”的NSManagedObjectContext,其类型为NSMainQueueConcurrencyType[似乎用于处理主线程上的核心数据]。此“默认上下文”的父NSManagedObjectContext为“根上下文”

我的问题是,对于需要持久化到sqlite的json数据[由多个核心数据实体组成]的大型后台下载,我们应该使用父级为rootContext的NSPrivateQueueConcurrencyType创建单个上下文还是多个上下文


我们应该使用什么方法,有什么想法吗?

这取决于数据的真实情况,即数据之间是否存在关系,这决定了数据的多个部分是否可以同时加载。您只需要一个上下文和一个后台线程,但如果数据允许,您可以使用更多线程,这样可以提高性能(您需要测试和分析)。拥有大量的上下文不太可能有多大帮助(或者实际上只是让事情变得更慢)。

RestKit可以帮助您,它可以使用您提供的少量配置数据来管理导入和线程。是的,底层sqlite数据库确实有关系,并且要解析的数据也以关系形式存储在sqlite中。即使我使用一个线程和一个上下文,问题仍然是这个上下文的父级是什么?它是MagicalRecord中的根上下文还是默认上下文?通常是根上下文。