iOS Property List 以及NSUserDefaults

来源:互联网 发布:优化同义词 编辑:程序博客网 时间:2024/05/20 11:27

Property List表示任何下面6个类型的组合,

NSArray,NSDictionary,NSNumber,NSString,NSDate,NSData.

比如字符串数组、关键字为字符串的字典  都是Property List.

为什么我们要有Property List ?

因为iOS有的API参数是id,它的文档上规定这个id必须的Property List.

这就意味着必须是这6种中的一个.


举个例子为什么要这么做,NSUserDefaults是个轻量级的Property List数据库,

轻量级就是小型的,内容不多的数组字典等,不是大型的图片数据之类的,

它以字典为基础,存在与应用运行的空隙.


NSUserDefaults用standardDefaults方法进行读写,这和字典很像,但是有更具体的操作,

-(void)setArray:(NSArray*)anArray forKey:(NSString*)key;

-(void)setDouble:(double)aDouble forKey:(NSString*)key;

-(NSInteger)integerForKey:(NSString*)key;//NSInteger is a typedef to 32 or 64 bit int 

-(void)setObject:(id)obj forKey:(NSString*)key;//obj必须是Property List中的一个

-(NSArray*)arrayForKey:(NSString*)key;//如果key里保存的不是array就返回nil


最后一点,无论何时你用了NSUserDefaults,你必须和磁盘进行同步,

[[NSUserDefaults standardUserDefaults] synchronize];

这只是安全起见.任何操作之后都要同步,否则数据不会被保存,

同步不是没有开销,但是非常少.




原创粉丝点击