加深理解代替单纯记忆
什么是property list
- Property List是iOS中将一些常用的数据类型,按一定的规则组合到一起,形成的一种抽象数据结构
- 用于存储轻量级的数据
- 与它一起,iOS提供了实用的类和API,使得Property List对象可以容易地进行序列化成data、反序列化成Property List对象和持久存储Property List对象
Property List数据类型规范
- 只有
NSNumber、NSString、Boolean、NSData、NSDate、NSArray、NSDictionary类型才可以组成Property List类型 NSArray作为集合数据类型,可以包含其他内容,但是被包含的内容也得是上面的数据类型NSDictionary的value必须也是上面的几种数据类型,而key必须是NSString- Property List要求的数据只能有一个root object
- 比如一个包含了若干内容的
NSDictionary或NSArray是一个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必为StringNSPropertyListSerialization可用于Property List的序列化、反序列,即Property List 与 NSData之间的转换- 序列化时,可以选择转化为
xml类型或binary二进制数据类型。binary类型的数据更小 - 对于root object是
NSArray或NSDictionary的类型来说,iOS提供了直接从property list xml文件或plist文件与PropertyList Object之间的转换API