0

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

谢谢

4

1 回答 1

1

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

  1. 如果您获取大量数据,则应在后台线程上进行,以免阻塞 UI。
  2. NSFetchRequest有一个名为的属性propertiesToFetch,您可以使用它来仅获取您需要的属性
  3. relationshipKeyPathsForPrefetching您可以使用以下属性预取一些关系以供以后使用NSFetchRequest
  4. 你应该在你的NSFetchRequest对象上设置一个谓词,以便只获取你需要的数据
  5. 正确构建实体图也很重要,这样您就不会在不需要时获取不必要的数据。

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

我认为将单独的 MOC 用作“档案”不会对您的表现有所帮助。您可能应该阅读有关CoreData 性能的 Apple 文档

于 2013-05-28T09:51:50.870 回答