很多iOS应用都支持偏好设置,比如保存用户名、密码、字体大小等设 置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能
每个应用都有个NSUserDefaults实例,通过它来存取偏好设置
比如,保存用户名、字体大小、是否自动登录
注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中 的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序 就终止了。出现以上问题,可以通过调用synchornize方法强制写入[defaults synchornize];
/** * *存储数据 */ - (IBAction)saveBtn:(id)sender { // 偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要再偏好设置中保存其他数据 // 如果利用系统的偏好设置来存储数据, 默认就是存储在Preferences文件夹下面的 // 偏好设置会将所有的数据保存到同一个文件中 // 获取NSUserDefaults对象 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面) [defaults setObject:@"lnj" forKey:@"name"]; [defaults setObject:@"man" forKey:@"gender"]; [defaults setInteger:13 forKey:@"age"]; [defaults setDouble:10.1 forKey:@"height"]; // 让NSUserDefaults立刻保存数据 [defaults synchronize]; } /** *读取数据 * */ - (IBAction)readBtn:(id)sender { // 1.获取NSUserDefaults NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 2.通过NSUserDefaults获取保存的数据 NSString *name = [defaults objectForKey:@"name"]; int age = [defaults integerForKey:@"age"]; NSLog(@"%@", name); NSLog(@"%d", age); }