1

我已经看到了许多将 CoreData 与多个 ManagedObjectContexts 一起使用的示例(以新的 iOS5+ Parent/Child 方式),例如:

//
//          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 中都有一个(在任何内部消息传递中可能还有更多CoreData 在 MOC 之间使用)?

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

4

0 回答 0