1. 理解:
a. 很多iOS应用都支持偏好设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能。
b. 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置,比如:保存用户名、字体大小、是否自动登录等。
c. 注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。出现以上问题,可以通过调用synchornize方法强制写入[defaults synchornize];
2.偏好设置数据存储过程:
// 存数据
NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
[ud setObject:@"value"forKey:@"key"];
[ud setBool:YES forKey:@"isOn"];
// 同步 ios8以后不需要调用也可以正常使用
[ud synchronize];
// 取数据
NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
NSLog(@"%@", [udobjectForKey:@"key"]);
NSLog(@"%d",[udboolForKey:@"isOn"]);
2015-10-07 15:58:09.825 02-偏好设置[25446:1026407] value
2015-10-07 15:58:09.827 02-偏好设置[25446:1026407] 1
3. 总结:
偏好设置实际上:
a. 存储不需要关心文件名;
b. 可以快速的做键值对的存储;
c. NSUserDefaults 实际上就是系统对字典的封装;