NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从
NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读
字符串一样,直接读取就可以了。
(1)NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。很实用吧。
(2)NSUserDefaults写的设置数据都会保存在Library/Preferences目录下的一个plist文件中。需要注意的是如果程序意外退出,[NSUserDefaults standardUserDefaults]数据不会被系统写入到该文件,所以,要使用[[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失。
//NSNumber
NSNumber*num1=[NSNumbernumberWithLong:1234567890];
[[NSUserDefaultsstandardUserDefaults]setObject:num1forKey:@"testNum"];
NSLog(@"Num:%@",[[NSUserDefaultsstandardUserDefaults]objectForKey:@"testNum"]);// Num:1234567890
//字符串
NSString*nameStr=@"wangchan1992";
[[NSUserDefaultsstandardUserDefaults]setObject:nameStrforKey:@"testStr"];
//这里建议同步存储到磁盘中,但是不是必须的.
[[NSUserDefaultsstandardUserDefaults] synchronize];
NSLog(@"Str:%@",[[NSUserDefaultsstandardUserDefaults] objectForKey:@"testStr"]);//Str:wangchan1992
//字典
NSDictionary*dict=@{@"A":@"90~100",@"B":@"80~89",@"C":@"70~79"};
[[NSUserDefaultsstandardUserDefaults] setObject:dictforKey:@"testDic"];
NSLog(@"Dic:%@",[[NSUserDefaultsstandardUserDefaults]objectForKey:@"testDic"]);
/*
Dic:{
A = "90~100";
B = "80~89";
C = "70~79";
}
*/
//数组
NSArray*array=@[@"Aa",@"Ba",@"Cc",@"Dd",@"Ee",@"Ff",@"Gg"];
[[NSUserDefaultsstandardUserDefaults]setObject:arrayforKey:@"testArr"];
NSLog(@"Arr:%@",[[NSUserDefaultsstandardUserDefaults]objectForKey:@"testArr"]);//
/*
Arr:(
Aa,
Ba,
Cc,
Dd,
Ee,
Ff,
Gg
)
*/
//数组里存放字典
NSDictionary*dict0=@{@"dict0":@"aa",@"dict1":@"bb"};
NSDictionary*dict1=@{@"dict0":@"aa",@"dict1":@"bb"};
NSDictionary*dict2=@{@"dict0":@"aa",@"dict1":@"bb"};
NSMutableArray*muArr=[NSMutableArrayarrayWithObjects:dict0,dict1,dict2, nil];
[[NSUserDefaultsstandardUserDefaults]setObject:muArrforKey:@"testMuArr"];
NSLog(@"muArr:%@",[[NSUserDefaultsstandardUserDefaults]objectForKey:@"testMuArr"]);
/*
muArr:(
{
dict0 = aa;
dict1 = bb;
},
{
dict0 = aa;
dict1 = bb;
},
{
dict0 = aa;
dict1 = bb;
}
)
*/
联系客服