Cocoa touch 使用NSKeyedUnachiver读入使用writeToFile:原子方式创建的文件:

Cocoa touch 使用NSKeyedUnachiver读入使用writeToFile:原子方式创建的文件:,cocoa-touch,cocoa,nsdictionary,plist,archive,Cocoa Touch,Cocoa,Nsdictionary,Plist,Archive,从由writeToFile:atomically:编写的文件中读取NSDictionary时,这些方法之间是否存在差异 [someDict writeToFile:filePath atomically:YES]; 阅读者: NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; vs 是的:第一个选项根本不起作用 NSKeyedArchiver和writeToFile:不要使用相同的格式。writ

从由
writeToFile:atomically:
编写的文件中读取
NSDictionary
时,这些方法之间是否存在差异

[someDict writeToFile:filePath atomically:YES];
阅读者:

NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
vs


是的:第一个选项根本不起作用

NSKeyedArchiver
writeToFile:
不要使用相同的格式。
writeToFile:atomicaly:
说明中说:

将字典内容的属性列表表示形式写入给定路径

而密钥存档是

与体系结构无关的字节流,保留对象和值的标识以及它们之间的关系

它更灵活,因为它可以对任何符合
NSCoding
的对象进行编码,而不仅仅是编码


使用一个过程创建的文件不能与另一个过程一起读取。

第二个过程可以工作;第一个不会。@dasblinkenlight第一个会使用NSArray(我是说使用NSArray的writeToFile方法),还是我应该只使用我用NSKeyedArchiver编写的文件?你应该只使用第一个方法处理你用
NSKeyedArchiver
编写的文件。
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:filePath];