具有多个ManagedObjectContexts的CoreData的内存使用情况

时间:2012-11-12 02:42:30

标签: ios core-data

我见过很多使用CoreData和多个ManagedObjectContexts的例子(以新的iOS5 +父/子方式),例如:

//
//          persistentStore (on disk)
//                 |
//   persistentManagedObjectContext (exclusively for saving)
//                 |
//   mainThreadManagedObjectContext (for managedObject's used on the mainThread)
//                 |
//      childManagedObjectContext (created "on the fly" for background task, and destroyed when saving is done)
//
  1. 我认为在上面的3层方法中,对子MOC执行的每次提取都会导致至少3个读取的对象被保存在内存中, 每个MOC中一个(在MOC之间使用CoreData中的任何内部消息可能更多)?

  2. 如果我有一个后台任务读取一些数据(例如图像),做一些处理(例如创建缩略图)并写入数据库,但不直接/立即更新UI,那么 我是否认为这种方法也不合适,因为更新将不必要地通过主要上下文,从而影响主线程并影响UI的性能。

0 个答案:

没有答案