2014-05-19 50 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