NSUserDefaults的使用
在iOS中存储数据有很多种方式,常用的有NSUserDefaults,sqlite,CoreData等等,但是他们的用途又各有不同。其中NSUserDefaults用来存储类似用户的配置等较为简单的数据,而后两者较多用于存储大批量的,比较复杂的数据。在这里我们简单看下NSUserDefaults的简单用法。
NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作(存储,传值)。
写一个简单的例子:
一、存储
NSUserDefaults *mySettingData = [NSUserDefaults standardUserDefaults];//创建NSUserDefaults
创建NSUserDefaults对象之后即可往里面添加数据,它支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型,如果要存放自定义的对象(如自定义的类对象),则必须将其转换成NSData存储:
NSArray *arr = [[NSArray alloc] initWithObjects:@"arr1", @"arr2", nil]
[mySettingData setObject:arr forKey:@"arrItem"];
[mySettingData setObject:@"admin" forKey:@"user_name"];
[mySettingData setBOOL:@YES forKey:@"auto_login"];
[mySettingData setInteger:1 forKey:@"count"];
[NSUserDefaults standardUserDefaults]synchronize;
注:使用[[NSUserDefaultsstandardUserDefaults]synchronize]命令直接同步到文件里,来避免数据的丢失
二、读取
NSUserDefault * mySettingData =[NSUserDefault standardUserDefault];
BOOL isonline = [mySettingData boolForKey:@"auto_login"];
NSInteger onlineUserNumber = [mySettingData integerForKey:@"count"];