NSKeyedArchiver或[NSArray writeToFile:atomically:]?

时间:2010-12-29 14:41:03

标签: iphone objective-c persistence

我刚刚保存了两次相同的数据并使用NSKeyedArchiver,文件大约增加了30KB(从60KB到90KB)我知道它不多,但我会有更多这些文件,有些会比其他文件更大。那么差异是什么,使用另一个的优势是什么?

1 个答案:

答案 0 :(得分:4)

你可以坚持 - [NSArray writeToFile:atomically:]用于简单对象,即属性列表本身支持的对象(主要是字符串,数字,日期,字节序列,以及数组和字典)。

如果您要存储复杂数据,NSKeyedArchiver将优先于NSArray / NSDictionary。与NSArray或NSDictionary创建的属性列表相反,键控存档包含有关整个对象图层次结构的元数据 - 对象,它们的标识,它们的关系,类,实例变量,超类。数据是键控的,可以通过忽略键(例如实例变量)来保持向前或向后兼容性。有关(键控)档案的更多信息,请访问Archives and Serializations Programming Guide