Objective c 使用自定义对象数组而不是字典重现writeToURL/initWithContentsOfURL行为
我将NSMutableDictionary对象数组替换为自定义对象数组。每个都有15个左右的实例变量需要持久化,还有几个是暂时的 我过去常常使用Objective c 使用自定义对象数组而不是字典重现writeToURL/initWithContentsOfURL行为,objective-c,cocoa,nsarray,nsdictionary,Objective C,Cocoa,Nsarray,Nsdictionary,我将NSMutableDictionary对象数组替换为自定义对象数组。每个都有15个左右的实例变量需要持久化,还有几个是暂时的 我过去常常使用-initWithContentsOfURL:和-writeToURL:来读写这些内容 使用新数据结构生成相同plist文件的最佳方法是什么 保存的一种方法似乎是重新创建一个等效字典数组,并调用-writeToURL:,反之亦然以进行加载。我想知道是有一种简单的方法,还是一种更简单更直接的方法。您可以在类中实现该协议,将类的实例归档到磁盘上。我经常发现,
-initWithContentsOfURL:
和-writeToURL:
来读写这些内容
使用新数据结构生成相同plist文件的最佳方法是什么
保存的一种方法似乎是重新创建一个等效字典数组,并调用
-writeToURL:
,反之亦然以进行加载。我想知道是有一种简单的方法,还是一种更简单更直接的方法。您可以在类中实现该协议,将类的实例归档到磁盘上。我经常发现,最方便的方法是从自定义对象树创建一个NSMutableDictionary树并归档它。很明显,这会带来内存和CPU开销,严格来说并不像skidr0w建议的那样实现NSCoding,但正如我所说的,它有时更快更容易。虽然不美观,但确实又快又容易。@noa使用NSCoding协议实现对象序列化有一个新的方法