一、Preference简介
(1)偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要在偏好设置中保存其他数据。如果利用系统的偏好设置来存储数据, 默认就是存储在Library/Preferences文件夹下面的,偏好设置会将所有的数据都保存到同一个文件中。
(2)使用偏好设置对数据进行保存之后, 它保存到系统的时间是不确定的,会在将来某一时间点自动将数据保存到Preferences文件夹下面,如果需要即刻将数据存储,可以使用[defaults synchronize],同步即可储存;
(3)所有的信息都写在一个文件中,对比简单的plist可以保存和读取基本的数据类型。
(4)只能储存NSData、NSNumber、NSDictionary、NSString、NSDate、NSArray、BOOL等数据类型,如果需要存储其他NSObject类型的数据,可以用NSKeyedArchive先转换成NSData之后再存储。
二、NSUserDefaults使用
NSUserDefaults是单例,也是线测安全的
2.1、获取APP共享的的偏好设置
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
2.2、存储数据(API都是类似的)
[defaults setObject:@"123" forKey:@"pwd"];
[defaults setInteger:10 forKey:@"age"];
[defaults setBool:YES forKey:@"auto_login"];
[defaults synchronize]; 立刻同步保存数据
2.3、读取数据
NSString *account = [defaults objectForKey:@"account"];
BOOL autoLogin = [defaults boolForKey:@"auto_login"];
2.4、删除某个值
[defaults removeObjectForKey:@"auto_login"];