在核心数据文档中存储文档特定设置的最佳方式是啥?
Posted
技术标签:
【中文标题】在核心数据文档中存储文档特定设置的最佳方式是啥?【英文标题】:What is the best way to store document specific settings in a Core Data Document?在核心数据文档中存储文档特定设置的最佳方式是什么? 【发布时间】:2009-07-24 23:49:23 【问题描述】:我在我的应用程序中使用由 Core Data 支持的 NSPersistantDocument
。
每个文档都有一些仅与该文档相关的设置。例如,文档需要保存地址簿组的唯一 ID,以便以后更新。
我正在考虑的方法是创建另一个模型DocumentSetting
,它有两个属性;一个键和一个值,其中包含NSString
's。
理想情况下,我想要类似于 NSUserDefaults
但存储在文档中的内容。
以前有人做过吗?有没有更好的方法来解决这个问题?
【问题讨论】:
【参考方案1】:NSPersistentStore 上的 setMetadata: 方法可用于存储每个文档的设置。可以在here 找到有关如何使用商店元数据的文档。不过,正如文档中所建议的那样,可以放入的内容有一些大小限制。如果您需要存储比几个键/值对更重要的内容,我建议您在数据模型中创建一个新实体来存储此类数据。
【讨论】:
【参考方案2】:正如 Brian 所说,持久存储的元数据是处理这类事情的好地方。或者,您添加单独实体的想法也有效(我过去使用过这两种方法)。请记住,如果此 DocumentSetting
实体与文档模型中的其他实体没有关系,您可以将其放入单独的 xcdatamodel 并在运行时使用 -[NSManagedObjectModel mergedModelFromBundles:]
合并模型。至少这样你可以让你的“源”模型文件稍微隔离一下。
在策略方面,除非您将拥有大量此类文档设置或想要单独查询它们,否则您可以使用可转换属性并将(存档的)NSDictionary
存储在您的 DocumentSettings
实体中.这会让感觉更像NSUserDefaults
API,基本上感觉就像一本字典。
【讨论】:
以上是关于在核心数据文档中存储文档特定设置的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章