NSUserDefaults偏好设置数据存取

偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要再偏好设置中保存其他数据
如果利用系统的偏好设置来存储数据, 默认就是存储在Preferences文件夹下面的
偏好设置会将所有的数据保存到同一个文件中

// 获取NSUserDefaults对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面)
[defaults setObject:@"solozyx" forKey:@"name"];
[defaults setObject:@"man" forKey:@"gender"];
[defaults setInteger:99 forKey:@"age"];
[defaults setDouble:172.1 forKey:@"height"];
// 让NSUserDefaults立刻保存数据
[defaults synchronize];

注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了setXXX 方法之后数据有可能还没有写入磁盘应用程序就终止了。出现以上问题,可以通过调用synchornize方法强制写入

[defaults synchornize];
// 1.获取NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 2.通过NSUserDefaults获取保存的数据
NSString *name = [defaults objectForKey:@"name"];
NSString *gender = [defaults objectForKey:@"gender"];
int age = (int)[defaults integerForKey:@"age"];
float height = (float)[defaults floatForKey:@"height"];
NSLog(@"%@", name);
NSLog(@"%@", gender);
NSLog(@"%d", age);
NSLog(@"%f", height);

//2016-08-23 13:49:08.303 偏好设置[88739:1309541] solozyx
//2016-08-23 13:49:08.303 偏好设置[88739:1309541] man
//2016-08-23 13:49:08.303 偏好设置[88739:1309541] 99
//2016-08-23 13:49:08.304 偏好设置[88739:1309541] 172.100006

你可能感兴趣的:(NSUserDefaults偏好设置数据存取)