NSArchiver自OSX10.2起已弃用,并且在iOS上不可用AFAIK另一方面,NSKeyedArchiver已知缺乏速度和简洁性部分(someusers报告NSKeyedArchiver和NSArchiver之间的性能差异超过100倍)。我要归档的对象主要是NSObject包含NSMutableArray的子类的NSNumber,以及包含原始类型的对象(主要是double)。我不相信开销键控归档意味着值得。所以我决定子类NSCoder在iOS上创建一个串行编码器,风格为NSArchiver.我知道键控文件在哪里可以派上用场:向后向前兼容性和其他细节,这可能是我最终会使用的,但我
对于数据恢复程序,我需要能够从NSArchiver写入的文件中提取值和类型,而无需访问Apple的CF/NS框架。OSXfile命令报告这样的文件:NeXT/Appletypedstreamdata,littleendian,version4,system1000是否有任何文档说明这些文件是如何编码的,或者有没有人想出可以解析它们的代码?这是此类数据的示例(也为:downloadable):040B73747265616D747970656481E803..streamtyped...840140848484124E5341747472696275..@....NSAttribu746
你怎么知道你需要使用NSArchiver还是NSKeyedArchiver?有什么区别? 最佳答案 NSArchiver支持–encodeObject:或–decodePoint等无键编码方式,而NSKeyedArchiver支持基于键的编码方法,如–encodeObject:forKey:或–decodePointForKey:。主要区别在于,在存档器上,您需要以与编码完全相同的方式解码内容。每个key只能被解码一次。另一方面,Keyedarchivers不会限制您的任何顺序,您可以自由地多次解码同一对象。尽可能使用NSKeyed