在核心数据文档中存储文档特定设置的最佳方式是啥?

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,基本上感觉就像一本字典。

【讨论】:

以上是关于在核心数据文档中存储文档特定设置的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 中存储应用程序特定配置的最佳方式是啥?

为有关餐厅的程序存储数据的最佳方式是啥?

在 Laravel 中存储网站设置的最佳方式是啥? [关闭]

查找 mongo 文档计数的最佳做法是啥?

本地存储数据的最佳方式是啥(IOS-xcode)

从嵌套在 Firestore 文档中的集合中获取数据的最佳方法是啥?