【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比


有Android开发经验的朋友对SharedPreference的用法应该比较亲切的吧,它一般用来保存和读取用户的设置参数,比如保存用户名、加密后的登录密码,是否选择了自动登录,应用选择了哪一套主题皮肤等用户配置信息,使用也非常简单,put/get就能保存/读取这个配置文件,这个文件是用xml形式保存在应用的目录下面

在ios中,也有这么一个类似的工具——NSUserDefault,它支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。它是存储在/Library/Prefereces里面,有个plist文件。

下面,我们写一个demo来测试下:

界面很简单,两个button,一个label

点击第一个button用来保存数据,点击第二个button用来显示数据到label

代码如下:


 1 - (IBAction)buttonClicked:(id)sender {
2 switch ([sender tag]) {
3 case 1: // 保存数据
4 [self saveData];
5 break;
6 case 2: // 显示数据
7 [self showData];
8 break;
9
10 default:
11 break;
12 }
13 }
14
15
16 - (void)saveData
17 {
18 NSUserDefaults userDef = [NSUserDefaults standardUserDefaults];
19
20 [userDef setObject:@”wangjie forKey:@”name];
21 [userDef setInteger:23 forKey:@”age];
22 [userDef setBool:YES forKey:@”isAutoLogin];
23 [userDef setDouble:115.0 forKey:@”weight];
24 [userDef setFloat:171.2 forKey:@”height];
25
26 [userDef synchronize];
27 NSLog(@”save success!);
28 }
29
30 - (void)showData
31 {
32 NSUserDefaults
userDef = [NSUserDefaults standardUserDefaults];
33 NSString *content = [NSString stringWithFormat:@”name: %@; age: %d; isAutoLogin: %hhd; weight: %f; height: %f,
34 [userDef stringForKey:@”name],
35 [userDef integerForKey:@”age],
36 [userDef boolForKey:@”isAutoLogin],
37 [userDef doubleForKey:@”weight],
38 [userDef floatForKey:@”height]
39 ];
40
41 [[self showLb] setText:content];
42 NSLog(@”%@, [[self showLb] text]);
43 }

一:启动应用程序后直接点击第二个button,因为数据之前没有被保存,所以显示的数据都是默认的数据:

二:点击第一个button(数据会被插入),再点击第二个button(已有数据可以显示),此时情况如下:

 



来源博客:Wang Jie's Blog
本文链接:https://blog.wangjiegulu.com/2013/11/03/【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处。