iOS应用都可以通过偏好设置来快速保存用户登录账号,密码和登录状态等信息。
苹果提供了一个 NSUserDefaults
实例,通过它来存取偏好设置,保存格式为 plist
文件格式。
使用偏好设置来保存数据,默认存储在 Preferences
的文件夹下,偏好设置数据会将所有的数据都保存到 Preferences
的文件夹下的同一个plist文件中。
偏好设置是以 key-value
的方式进行存储和读写到系统固定的plist缓存文件,使用到一个单例对象 NSUserDefaults
。
使用偏好设置对数据进行保存,它保存的时间是不确定的,会在将来某一时间自动将数据保存到 Preferences
文件夹下,如果需要即刻将数据存储,使用 [defaults synchronize]
。
下面是使用方法:
// 1.获得NSUserDefaults文件
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// 2.向偏好设置中写入内容
[userDefaults setObject:@"Jay" forKey:@"name"];
[userDefaults setBool:YES forKey:@"sex"];
[userDefaults setInteger:18 forKey:@"age"];
// 2.1立即同步
[userDefaults synchronize];
// 3.读取偏好设置
NSString *name = [userDefaults objectForKey:@"name"];
BOOL sex = [userDefaults boolForKey:@"sex"];
NSInteger age = [userDefaults integerForKey:@"age"];
NSLog(@"%@, %d, %ld", name, sex, age);
NSUserDefaults
和 文件读写(plist) 都是保存在 plist
文件中,但是文件读写(plist)操作读取时需要把整个plist文件都进行读取,而NSUserDefaults
可以直接通过 key-value
单个读取。