NSUserDefaults使用,用来做轻量级的数据存储,好用又方便。
做个笔记,对NSUserDefaults做个专题。
1、支持的数据类型
NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL。
2、NSUserDefaults是一个单例,在整个程序中只有一个实例对象,用于数据的永久保存,一般用于保存简单的数据。
3、举例,保存一个NSString对象
< 1 >
//将NSString 对象存储到 NSUserDefaults 中
NSString *passWord = @"1234567";
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user setObject:passWord forKey:@"userPassWord"];
< 2 >
取出数据,只需要取出key对应的值即可
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
NSString *passWord = [ user objectForKey:@"userPassWord"];
4、NSUserDefaults存储的对象全是不可变的(这一点非常关键,弄错的话程序会出bug)。
例如,如果我想要存储一个 NSMutableArray对象,我必须先创建一个不可变数组(NSArray)再将它存入NSUserDefaults中去,代码如下:
NSMutableArray *mutableArray =[NSMutableArray arrayWithObjects:@"123",@"234", nil];
NSArray * array = [NSArray arrayWithArray:mutableArray];
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user setObject:array forKey:@"记住存放的一定是不可变的"];
取出数据是一样的,想要用NSUserDefaults中的数据给可变数组赋值
/*-------------------------正确的赋值方法-------------------*/
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
//可以用alloc 方法代替
NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:[user objectForKey:@"记住存放的一定是不可变的"]];