1

NSPersistantDocument在我的应用程序中使用了由 Core Data 支持的。

每个文档都有许多只与该文档相关的设置。例如,文档需要保存地址簿组的唯一 ID,以便在以后更新它。

我正在考虑解决这个问题的方式是有另一个模型DocumentSetting,它有两个属性;一个键和一个值,它们持有NSString's。

理想情况下,我想要类似于NSUserDefaults但存储在文档中的内容。

有没有人这样做过?有没有更好的方法来解决这个问题?

4

2 回答 2

4

NSPersistentStore 上的 setMetadata: 方法可用于存储每个文档的设置。可以在此处找到有关如何使用商店元数据的文档。不过,正如文档中所建议的那样,可以放入的内容有一些大小限制。如果您需要存储比几个键/值对更重要的内容,我建议您在数据模型中创建一个新实体来存储此类数据。

于 2009-07-25T00:08:41.527 回答
2

正如 Brian 所说,持久存储的元数据是处理这类事情的好地方。或者,您添加单独实体的想法也有效(我过去使用过这两种方法)。请记住,如果此DocumentSetting实体与文档模型中的其他实体没有关系,您可以将其放入单独的 xcdatamodel 并在运行时使用-[NSManagedObjectModel mergedModelFromBundles:]. 至少通过这种方式,您可以将“源”模型文件稍微隔离一下。

在策略方面,除非您将拥有大量此类文档设置或想要单独查询它们,否则您可以使用可转换属性并将(存档)存储NSDictionary在您的DocumentSettings实体中。这将使感觉更像是NSUserDefaults感觉基本上像字典的 API。

于 2009-07-25T00:39:01.840 回答