以下内容为原创,欢迎转载,转载请注明
来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html
有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(已有数据可以显示),此时情况如下:
时间: 2024-11-27 03:24:04