Ios 有效利用核心数据和NSManagedObjectContext

Ios 有效利用核心数据和NSManagedObjectContext,ios,core-data,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobjectcontext,我一直在想,但从来没有找到任何文档,首先,什么是获取CD对象的有效方法。在我的应用程序中,我必须在NSMOC中存储数千个对象,并且需要尽快获取它们。Ois usi g NSPredicate获取符合我需要的实体的最佳方法是什么? 其次,如果我想保存一个“归档”类型的东西,在那里我存储了数千个不经常使用的对象,但我需要它们,那么有可能有两个NSMOC吗?如果有,它会加快获取实体的过程吗 谢谢如果要高效地获取CordaDATA对象,必须考虑以下几种方法: 如果获取大量数据,应该在后台线程上执行,这样

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


谢谢

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

  • 如果获取大量数据,应该在后台线程上执行,这样就不会阻塞UI
  • NSFetchRequest
    有一个名为
    propertiesToFetch
    的属性,您可以使用该属性仅获取所需的属性
  • 您可以使用
    NSFetchRequest
  • 您应该在
    NSFetchRequest
    对象上设置一个谓词,以便只获取所需的数据
  • 正确构造实体图也很重要,这样在不需要时就不会获取不必要的数据
  • 您不能说
    NSPredicate
    是获取CoreData对象的最佳方式,因为此任务使用
    NSFetchRequest
    ,但同时使用
    NSPredicate
    无疑是一个好主意

    我不认为使用单独的MOC作为“归档”会有助于您的性能。您可能应该在上阅读Apple文档