使用自定义对象数组而不是字典重现writeToURL / initWithContentsOfURL行为

时间:2011-11-04 16:53:27

标签: objective-c cocoa nsarray nsdictionary

我正在用自定义对象数组替换NSMutableDictionary对象数组。每个都有15个左右的实例变量需要持久存在,还有一些变量是瞬态的。

我曾经使用-initWithContentsOfURL:-writeToURL:来阅读和撰写这些内容。

使用新数据结构生成相同plist文件的最佳方法是什么?

似乎一种保存方法是重新创建一个等效字典数组并调用-writeToURL:,反之亦然。我想知道是否有一种简单的方法可以做到这一点,或者更直接的方法。

2 个答案:

答案 0 :(得分:1)

您可以在班级中实施NSCoding协议,以便在磁盘上归档班级实例。

答案 1 :(得分:1)

我经常发现,最方便的方法是从自定义对象树中创建一个NSMutableDictionaries树并将其存档。显然这有内存和CPU开销,并不像skidr0w所建议的那样严格执行NSCoding,但正如我所说,它有时更快更容易。