iOS: 偏好设置的详解和使用

简介:

偏好设置的详解:

用途:主要用来存储用户系统的设备信息,但有的时候也可以在程序的任何地方用来存储数据,作为全局数据来访问,例如视图切换需要进行登录时。

偏好设置的写入:
•很多iOS应用都支持偏好设置,比如保存用户名、密码、字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能
•每个应用都有个NSUserDefaults实例,它是一个单例对象,通过它来存取偏好设置,设置信息都是键值对的形式。
•例如:保存用户名、字体大小、是否自动登录

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:@"itcast.cn" forKey:@"userName"];

[defaults setFloat:18.0f forKey:@"fontSize"];

[defaults setBool:YES forKey:@"autoLogin"];

偏好设置的读取:

// 读取系统偏好

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *userName = [defaults objectForKey:@"userName"];

float fontSize = [defaults floatForKey:@"fontSize"];

BOOL autoLogin = [defaults boolForKey:@"autoLogin"];

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

出现以上问题,可以通过调用synchornize同步方法强制写入:

[defaults synchronize];

 

偏好设置的使用:

1.设置用户登录信息(偏好设置)

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

    [userDefaults setObject:@"admin" forKey:@"userName"];     //登录用户名

    [userDefaults setObject:[NSDate date] forKey:@"loginDate"];      //登录时间

    [userDefaults setInteger:2 forKey:@"times"];              //登录次数

 

2.将设置的用户信息强制保存到磁盘沙盒目录下的preference文件中

    [userDefaults synchronize];

 

3.读取偏好设置

  NSUserDefaults *userDefaluts = [NSUserDefaults standardUserDefaults];    

    NSString *userName = [userDefaluts objectForKey:@"userName"];

    NSDate *date = [userDefaluts objectForKey:@"loginDate"];

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

    dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    NSInteger times = [userDefaluts integerForKey:@"times"];

    NSLog(@"userName:%@,date:%@,times:%ld",userName,[dateFormatter stringFromDate:date],times);

 

演示结果:

2015-09-20 10:18:33.529 02-用户偏好设置[601:20685] userName:admin,date:2015-09-20 10:18:33,times:2

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!



本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4822954.html,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
API 开发工具 iOS开发
在应用研发平台EMAS中,ios的推送有没有办法在app端设置在收到通知后是否展示的逻辑
在应用研发平台EMAS中,ios的推送有没有办法在app端设置在收到通知后是否展示的逻辑
33 1
|
iOS开发
iOS 15后设置导航控制器的导航条背景色无效的问题处理
iOS 15后设置导航控制器的导航条背景色无效的问题处理
371 0
|
7月前
|
缓存 iOS开发
iOS LaunchScreen.storyboard 启动页设置图片不显示
iOS LaunchScreen.storyboard 启动页设置图片不显示
138 0
|
10月前
|
小程序 API Android开发
小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)
小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)
262 0
|
iOS开发
iOS 启动图设置及icon图标设置
OS 启动图设置及icon图标设置
736 0
iOS 启动图设置及icon图标设置
|
存储 自然语言处理 API
iOS 多语言快捷设置Xib设置
iOS 多语言快捷设置Xib设置
iOS 多语言快捷设置Xib设置
iOS--设置系统导航栏右上角按钮不显示问题
iOS--设置系统导航栏右上角按钮不显示问题
196 0
|
iOS开发
iOS开发 - 设置阴影之你不知道的秘密
iOS开发 - 设置阴影之你不知道的秘密
336 0
|
iOS开发
iOS开发 - 设置placeholder无效?
iOS开发 - 设置placeholder无效?
120 0