介绍
我的iOS项目使用Core Data持久存储,大小为160MB,格式为SQLite。里面有大量分组信息,用户应该能够标记收藏。为此,我需要(至少部分)数据库具有写入功能。但是,当然,应用程序包中的持久存储是只读的。
如果您想让存储具有读写功能,则应将其复制到例如应用程序的文档文件夹中。我不想这样做,因为那样会使应用程序的大小增加一倍,而那个数据库的主要部分仍然是只读的。这将是一种浪费资源的行为。
NSPersistentStoreCoordinator多个持久存储
这就是为什么我考虑使用两个持久存储的原因。第一个是应用程序包中的大型存储,第二个可以是文档文件夹中的小型存储,存储与大型存储相关的特殊“收藏”实体。
我知道在这方面可能有一些方法,但我找不到具体的说明。如果您只有多个对象模型,是否应该只使用多个存储?一个对象模型是否可以“分布”在两个持久存储上?在浏览Core Data编程文档时,我找不到有关如何设置此项的任何真实参考。Marcus Zarra的书似乎也没有深入探讨这个主题:
可以将多个NSPersistentStore添加到NSPersistentStoreCoordinator中,这在处理分成多个文件的数据时非常有用。但是,在我们的例子中,我们只有一个文件。(Marcus Zarra: "Core Data - Apple's API for Persisting Data on Mac OS X" page 71) 问题 谁能告诉我,使用Core Data和多个持久存储是否可行?你可以提供一些关于如何实现的提示吗?在线/离线资源,涉及该主题也很受欢迎。