cocoa - 将CoreData缓存在内存中

标签 cocoa caching core-data

我有一个 CoreData 存储,其中包含两种类型的实体 - 由 SQLite 存储支持的 FooBarFoo 预计具有相对较少的实例(~1000),所有这些实例都非常频繁地访问和遍历。另一方面,Bar 的数量可能达到数百万,并且 Bar 的每个实例的访问相对较少。

我的问题是,默认情况下 CoreData 是否已经针对这种类型的非对称访问进行了优化?如果没有,有没有办法告诉 coreData 始终将 Foo 的所有实例缓存在内存中?

最佳答案

您不需要两个上下文以及由此产生的所有麻烦。您可以做的是使用 NSFetchRequest 将所有 Foo 对象提取到内存中,这将为您提供您想要的内容。

确保提取请求将 includesPropertyValues 设置为 YES(默认)以提取所有数据。

关于cocoa - 将CoreData缓存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689607/

相关文章:

cocoa - 处理将文件从 Finder 拖到有限索引 NSTableView 中

php - 如何检测和调试陈旧的缓存条目?

hibernate - 外部缓存(例如ehcache/redis)在哪里适合w.r.t hibernate 级别1/级别2缓存?

ios - 在 NSPredicates 上组合 "And"和 "Or"

objective-c - 渲染/快照 SpriteKit 场景到 NSImage

ios - Mac 和 iOS 应用程序之间的通用 iCloud 容器?

multithreading - NSOpenGLLayer 和多线程

asp.net - Response.Flush 破坏页面缓存

ios - 带有 MagicalRecord 的核心数据不会保存到 iCloud

ios - 为什么 NSManagedObject 实例不应该从一个线程传递到另一个线程?