用户默认设置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];