Ios 核心数据,使用什么并发模型?
我正在开发一款iOS应用程序,它将从多个来源收集大量数据(多达数万个对象,但简单的对象,没有图像),并使用核心数据将其保存到我自己的数据库中。然后,我分析这些数据并将结果显示给用户 我想知道使用主队列Nsmanagedobjectcontext是否有好处,或者使用私有队列是否足够 我还想知道拥有多个NSManagedObjectContext的好处是什么,或者一个是否足够 我当前使用的并发模型只有一个专用队列nsmanagedobjectcontext连接到持久存储协调器。所有的数据分析都在私有队列上执行,然后我只需将分析的数据传递到主队列以显示它。在旧设备(iPhone 4)上,当同时加载太多数据(即从外部数据库下载)时,我的应用程序有时会崩溃,这与我选择的并发模型有关吗Ios 核心数据,使用什么并发模型?,ios,objective-c,core-data,concurrency,Ios,Objective C,Core Data,Concurrency,我正在开发一款iOS应用程序,它将从多个来源收集大量数据(多达数万个对象,但简单的对象,没有图像),并使用核心数据将其保存到我自己的数据库中。然后,我分析这些数据并将结果显示给用户 我想知道使用主队列Nsmanagedobjectcontext是否有好处,或者使用私有队列是否足够 我还想知道拥有多个NSManagedObjectContext的好处是什么,或者一个是否足够 我当前使用的并发模型只有一个专用队列nsmanagedobjectcontext连接到持久存储协调器。所有的数据分析都在私有
你目前的方法听起来不错。如果希望主线程与数据交互,则只需要一个主线程上下文,而在您的情况下,则不需要这样做 你的内存管理实际上是不相关的,它更多地与你一次有多少事情(听起来像一件)和你在任何时候试图在主内存中保存多少对象(听起来像很多)联系在一起,而不是把它们错放到数据存储中。这就是你需要看/做的。仪器可以帮助您查看内存中保存了多少对象 至少使用
NO
调用refreshObject:mergeChanges:
,以进行合并更改,从而排除您未使用的任何对象
另外,请记住,您正在移动设备上工作,处理多达数万个对象是一项由服务器更好地处理的工作