我有一个 CoreData 存储,其中包含两种类型的实体 - 由 SQLite 存储支持的 Foo
和 Bar
。 Foo
预计具有相对较少的实例(~1000),所有这些实例都非常频繁地访问和遍历。另一方面,Bar
的数量可能达到数百万,并且 Bar
的每个实例的访问相对较少。
我的问题是,默认情况下 CoreData 是否已经针对这种类型的非对称访问进行了优化?如果没有,有没有办法告诉 coreData 始终将 Foo
的所有实例缓存在内存中?
最佳答案
您不需要两个上下文以及由此产生的所有麻烦。您可以做的是使用 NSFetchRequest
将所有 Foo
对象提取到内存中,这将为您提供您想要的内容。
确保提取请求将 includesPropertyValues
设置为 YES
(默认)以提取所有数据。
关于cocoa - 将CoreData缓存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689607/