哪种方法更好地保存数据nsdictionary或plist?

时间:2011-06-28 05:08:22

标签: objective-c plist nsdictionary

我想在本地保存数据,但我不知道哪种方法更好用nsdictionary或plist?谁能告诉哪种方法更好?为什么?

提前致谢!

1 个答案:

答案 0 :(得分:5)

我想也许你想问的是哪个更好,更有利,更二元。如果您使用NSDictionarywriteToFile:保存到文件,则会将其存储为plist。所以从这个意义上说,两者之间没有差别。

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

至于哪个更好,为什么,这取决于你想做什么。用于将NSDictionary转换为plist文件的API比使用序列化和重构NSData的API更方便使用。但是,将NSDictionary存储为plist文件只有在字典中的所有内容都是plist对象时才会起作用(NSDataNSDateNSNumberNSString的实例,NSArrayNSDictionary),如果您的所有密钥都是NSString类型。否则,writeToFile:电话会因为提供有关原因的令人沮丧的信息而失败。

因此,如果您的数据结构满足作为plist存储的要求,并且您无法预见它会被更改以使其不再符合要求,那么您可能会发现将其作为plist存储更方便。否则,您唯一的选择是使用NSData进行二进制序列化和存储。如果您希望代码不会被在数据结构中粘贴非plist-object的人意外破坏,您可能更喜欢后一种选择。