我想在本地保存数据,但我不知道哪种方法更好用nsdictionary或plist?谁能告诉哪种方法更好?为什么?
提前致谢!
答案 0 :(得分:5)
我想也许你想问的是哪个更好,更有利,更二元。如果您使用NSDictionary
将writeToFile:
保存到文件,则会将其存储为plist。所以从这个意义上说,两者之间没有差别。
但是,您还可以选择将NSDictionary
实例转换为序列化NSData
表示形式,然后将序列化数据存储为二进制文件。
至于哪个更好,为什么,这取决于你想做什么。用于将NSDictionary
转换为plist文件的API比使用序列化和重构NSData
的API更方便使用。但是,将NSDictionary
存储为plist文件只有在字典中的所有内容都是plist对象时才会起作用(NSData
,NSDate
,NSNumber
,NSString
的实例,NSArray
或NSDictionary
),如果您的所有密钥都是NSString
类型。否则,writeToFile:
电话会因为提供有关原因的令人沮丧的信息而失败。
因此,如果您的数据结构满足作为plist存储的要求,并且您无法预见它会被更改以使其不再符合要求,那么您可能会发现将其作为plist存储更方便。否则,您唯一的选择是使用NSData
进行二进制序列化和存储。如果您希望代码不会被在数据结构中粘贴非plist-object的人意外破坏,您可能更喜欢后一种选择。