Property List 使用注意事项

1,255 阅读1分钟

加深理解代替单纯记忆

什么是property list

  • Property List是iOS中将一些常用的数据类型,按一定的规则组合到一起,形成的一种抽象数据结构
  • 用于存储轻量级的数据
  • 与它一起,iOS提供了实用的类和API,使得Property List对象可以容易地进行序列化成data、反序列化成Property List对象和持久存储Property List对象

Property List数据类型规范

  • 只有NSNumberNSStringBooleanNSDataNSDateNSArrayNSDictionary类型才可以组成Property List类型
  • NSArray作为集合数据类型,可以包含其他内容,但是被包含的内容也得是上面的数据类型
  • NSDictionary的value必须也是上面的几种数据类型,而key必须是NSString
  • Property List要求的数据只能有一个root object
    • 比如一个包含了若干内容的NSDictionaryNSArray是一个Property List Object
    • 或者一个NSNumber数据也是一个Property List Object

下面每一个类型都是Property List Object

NSString *str = @"songgeb gc!";
NSNumber *number = @(8848);
NSNumber *boolNumber = @(YES);
NSDictionary *dict = @{@"songgeb": @"nb", @"isTure": boolNumber};
NSArray *array = @[dict, boolNumber, number];

其他注意点

  • UserDefault存储的对象必须是Property List Object,所以若存储Dictionary,则key必为String
  • NSPropertyListSerialization可用于Property List的序列化、反序列,即Property List 与 NSData之间的转换
  • 序列化时,可以选择转化为xml类型或binary二进制数据类型。binary类型的数据更小
  • 对于root object是NSArrayNSDictionary的类型来说,iOS提供了直接从property list xml文件或plist文件与PropertyList Object之间的转换API

参考