IOS 数据存储——用户默认设置 NSUserDefaults

岳正阳
2023-12-01

用户默认设置NSUserDefaults

NSUserDefaults类提供了一个与默认系统进行交互的编程接口。NSUserDefaults对象是用来保存、恢复应用程序相关的偏好设置、配置数据等等。默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设置。同时,NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。NSUserDefaults类提供了非常方便的方法来读写常用的类型。方法是指定要写入的数据类型以及以后用于访问该数据的,有6个写入方法可供调用:setBool:forKeysetFloat:forKeysetInteger:forKeysetObject:forKeysetDouble:forKeysetURL:forKey,具体使用哪个方法取决于要存储的数据类型。其中,方法setObject:forKey用于存储NSStringNSDateNSArryNSDictionary等等对象类型。

NSUserDefaults是单例,同时也是线程安全的。

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setBool:self.toggleSwitch.on forKey:kOnOffToggle];

[userDefaults setFloat:self.brightnessSlider.value forKey:kBrightnessLevel];


上述代码将数据写入默认设置数据库时,并不一定会立即保存这些数据。还需要

进一步调用 synchronize 方法确保所有数据都及时写入:

[userDefaultssynchronize];

要将这些数据读入 App 中,可根据键值和返回类型,调用相应的方法。根据要

读取的数据类型,可选择 arrayForKeyboolForKeydateforKey

dictionaryForKeyfloatForKeyintegerForKeyobjectForKey

doubleForKeyURLForKey等等方法。

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

self.brightnessSlider.value = [userDefaults floatForKey:kBrightnessLevel];

self.toggleSwitch.on = [userDefaults boolForKey:kOnOffToggle];


 类似资料: