2013-05-28 69 views
0

我想知道,从来没有找到任何文档,首先,什么是获取CD对象的有效方法。在我的应用程序中,我必须将数千个对象存储在我的NSMOC中,并且需要尽可能快地获取它们。 OIS使用NSPredicate获取符合我想要的最佳方式的实体的最佳方式是什么?其次,如果我想保留一个“存档”类型的东西,我存储了数千个不经常使用的对象,但我需要拥有它们,是否有可能拥有两个NSMOC,如果是的话,它会加速过程获取实体?有效使用核心数据和NSManagedObjectContext

感谢

回答

1

如果你想获取CoreData高效的对象,你必须要考虑的几个方法:如果您获取了大量数据

  1. ,你应该这样做在后台线程使你不会阻止用户界面。
  2. NSFetchRequest有一个名为propertiesToFetch属性,你可以用它来获取只需要
  3. 可以预取一些使用NSFetchRequest
  4. relationshipKeyPathsForPrefetching属性以备日后使用关系的属性应该设置一个谓语您NSFetchRequest对象,以便仅提取所需的数据
  5. 正确地构造实体图也很重要,以便在不需要时不会获取不必要的数据。

你不能说NSPredicate是因为你使用NSFetchRequest此任务来获取CoreData对象的最佳方式,但它绝对是是使用NSPredicate还有一个好主意。

我不认为有一个单独的MOC用作“档案”会帮助你的表现。您应该阅读关于CoreData performance

的Apple文档
相关问题