2011-06-28 44 views

回答

5

我想也许你要问的是哪个更好,plist或者二进制。如果您使用writeToFile:将文件NSDictionary保存为文件,它将作为plist存储。所以在这个意义上,两者之间没有差别。

但是,您也可以选择将NSDictionary实例转换为序列化的NSData表示形式,然后将序列化的数据存储为二进制文件。

至于哪个更好,为什么取决于你想要做什么。用于将NSDictionary转换为plist文件/从plist文件转换的API比API用于序列化和重建NSData更为方便。然而,存储的NSDictionary是plist文件,如果一切都在字典中是一个的plist对象只能(实例NSDataNSDateNSNumberNSStringNSArray,或者NSDictionary),如果所有的按键都NSString类型。否则,您的呼叫将失败,并提供有关原因的令人沮丧的信息。

因此,如果您的数据结构符合作为plist存储的要求,并且您无法预见它会被更改为不再满足要求,那么您可能会发现将它更改为plist更方便。否则,您唯一的选择是使用NSData来执行二进制序列化和存储。如果你想让代码不会被你的数据结构中的一个非plist对象所意外破坏,你可能更喜欢后一种选择。

+0

在性能方面有什么不同?二进制在理论上应该更快。 –