介绍
我的 iOS 项目附带了一个重约 160MB 的 SQLite 格式的 Core Data 持久存储。那里有大量的分组信息,用户应该能够在其中标记收藏夹。为此,我需要(至少部分)数据库具有写入功能。但当然,应用程序包中的持久存储在设计上是只读的。
如果您希望商店具有读写能力,您应该将其复制到,例如应用程序的文档文件夹。我不想这样做,因为那样应用程序的大小将是原来的两倍,而该数据库的主要部分无论如何都是只读的。那将是资源的浪费。
NSPersistentStoreCoordinator 的多个持久存储
这就是为什么我想使用两个持久存储。第一个是捆绑包中的大的,第二个可能是文档文件夹中的一个小的,存储与大商店有关系的特殊“最喜欢的”实体。
我知道在这方面有一些可能,但我找不到具体细节。如果您还有多个对象模型,是否应该只使用多个商店?一个对象模型可以“分布”在两个持久存储上吗?浏览核心数据编程文档时,我找不到任何关于如何设置的真正参考。Marcus Zarra 的书似乎也没有深入探讨这个话题:
可以向 NSPersistentStoreCoordinator 添加多个 NSPersistentStore,这在处理拆分为多个文件的数据时非常有用。但是,在我们的示例中,我们只有一个文件。(Marcus Zarra:“Core Data - Apple 用于在 Mac OS X 上持久化数据的 API”,第 71 页)
问题
谁能告诉我我的想法是否可以通过 Core Data 和多个持久存储实现?您能否提供有关如何实现这一目标的提示?也非常感谢处理该主题的在线/离线资源。