我正在开发一个应用程序iOS,它将从多个来源收集大量数据(多达数万个对象,但简单的对象,没有图像),并使用核心数据保存到我自己的数据库中。然后分析这些数据并将结果显示给用户。
我想知道使用主队列Nsmanagedobjectcontext是否有任何好处,或者使用私有队列是否足够。
我还想知道拥有几个NSManagedObjectContext的好处是什么,或者一个是否足够?
我目前使用的并发模型只有一个私有队列nsmanagedobjectcontext连接到持久存储协调器。所有的数据分析都是在私有队列上执行的,然后我简单地将分析过的数据传递给主队列来显示它。在旧设备(iPhone 4)上,当加载太多数据(即从外部数据库下载)时,我的应用程序有时会崩溃,这与我选择并发模型有关吗?

发布于 2015-02-07 19:42:50
你现在的方法听起来不错。您只需要一个主线程上下文,如果您希望主线程与数据交互,在您的情况下,您不需要,所以这是好的。
您的内存管理实际上是不相关的,并且更多地取决于您一次进行了多少件事情(听起来像是一件事),以及您在任何时候尝试在主内存中保存多少个对象(听起来像很多),而不是将它们错误地放到数据存储中。这就是你需要看/工作的地方。仪器可以帮助你看到你在记忆中保存了多少东西。
至少调用refreshObject:mergeChanges:和NO进行合并更改,以故障出任何您不使用的对象。
另外,请记住,您正在处理移动设备,处理up to tens of thousands of objects是一项由服务器处理的任务.
https://stackoverflow.com/questions/28382824
复制相似问题