用戶默認設置NSUserDefaults
NSUserDefaults類提供了一個與默認系統進行交互的編程接口。NSUserDefaults對象是用來保存、恢復應用程序相關的偏好設置、配置數據等等。默認系統允許應用程序自定義它的行爲去迎合用戶的喜好。你可以在程序運行的時候從用戶默認的數據庫中讀取程序的設置。同時,NSUserDefaults的緩存避免了在每次讀取數據時候都打開用戶默認數據庫的操作。可以通過調用synchronize方法來使內存中的緩存與用戶默認系統進行同步。NSUserDefaults類提供了非常方便的方法來讀寫常用的類型。方法是指定要寫入的數據類型以及以後用於訪問該數據的,有6個寫入方法可供調用:setBool:forKey、setFloat:forKey、setInteger:forKey、setObject:forKey、setDouble:forKey、setURL:forKey,具體使用哪個方法取決於要存儲的數據類型。其中,方法setObject:forKey用於存儲NSString、NSDate、NSArry、NSDictionary等等對象類型。
NSUserDefaults是單例,同時也是線程安全的。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:self.toggleSwitch.on forKey:kOnOffToggle];
[userDefaults setFloat:self.brightnessSlider.value forKey:kBrightnessLevel];
進一步調用 synchronize 方法確保所有數據都及時寫入:
[userDefaultssynchronize];
要將這些數據讀入 App 中,可根據鍵值和返回類型,調用相應的方法。根據要
讀取的數據類型,可選擇 arrayForKey、boolForKey、dateforKey、
dictionaryForKey、floatForKey、 integerForKey、objectForKey、
doubleForKey和URLForKey等等方法。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
self.brightnessSlider.value = [userDefaults floatForKey:kBrightnessLevel];
self.toggleSwitch.on = [userDefaults boolForKey:kOnOffToggle];