iOS数据持久化——NSUserDefaults(Preference 偏好设置)

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 单个读取。

你可能感兴趣的:(iOS数据持久化——NSUserDefaults(Preference 偏好设置))