有效使用Core Data和NSManagedObjectContext

时间:2013-05-28 09:33:09

标签: ios core-data nsmanagedobjectcontext

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

由于

1 个答案:

答案 0 :(得分:1)

如果要有效地获取CoreData对象,则必须考虑以下几种方法:

  1. 如果您获取大量数据,则应在后台线程上执行此操作,以免阻止UI。
  2. NSFetchRequest有一个名为propertiesToFetch的属性,您可以使用该属性仅提取您需要的属性
  3. 您可以使用relationshipKeyPathsForPrefetching
  4. NSFetchRequest属性预取一些关系供以后使用
  5. 您应该在NSFetchRequest对象上设置谓词,以便只获取所需的数据
  6. 正确构建实体图也很重要,这样当您不需要时就不会获取不必要的数据。
  7. 您不能说NSPredicate是获取CoreData对象的最佳方式,因为您使用NSFetchRequest执行此任务,但使用NSPredicate绝对是个好主意好。

    我认为将单独的MOC用作“存档”不会有助于您的表现。您应该阅读CoreData performance

    上的Apple文档