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 實際上就是系統對字典的封裝;