前言:
各位同学大家好 有段时间没有给大家更新文章 OS NSUserDefaults 数据缓存使用教程 就想着分享给大家 希望能帮助到各位同学的学习和工作, 那么废话不多说 我们正式开始
准备工作
安装xcode 这个大家·可以自己去appstore 搜索下载即可
image.png
具体实现
- (void)viewDidLoad {
[super viewDidLoad];
UIButton * btn= [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame=CGRectMake(100, 100, 80, 40);
[btn setTitle:@"写入文件" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(pressWrite) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
UIButton * btnRead =[UIButton buttonWithType:UIButtonTypeRoundedRect];
btnRead.frame=CGRectMake(100, 200, 80, 40);
[btnRead setTitle:@"读取文件" forState:UIControlStateNormal];
[btnRead addTarget:self action:@selector(presRead) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnRead];
}
我们写了一个2个 button 添加到ViewController中来模拟数据的写入和读取
-
写入数据
//写入数据
-(void)pressWrite{
//定义一个用户默认的对象
//不需要alloc 创建 用户默认数据对象的单例模式
//standardUserDefaults 获取全局唯一的实力对象
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
//存储字符串对象
//可以将对象存储到文件中
//p1 要存储的的对象 id
//P2 对象的名字 key :NSString
[ud setObject:@"徐庆" forKey:@"name"];
//存储数据对象
//只能存储能够文件化的对象
NSNumber * num =[NSNumber numberWithInt:100];
[ud setObject:num forKey:@"NUM"];
//不能存储不能文件化的对象
// [ud setObject:self.view forKey:@"VIEW"];
//存储整型数据
[ud setInteger:123 forKey:@"INT"];
//存储布尔值
[ud setBool:YES forKey:@"BOOL"];
//存储浮点型数据
[ud setFloat:1.555 forKey:@"FLOAT"];
//创建一个可以文件化的数组
NSArray * array=[NSArray arrayWithObjects:@"11",@"22",@"33", nil];
[ud setObject:array forKey:@"ARRAY"];
[ud removeObjectForKey:@"ARRAY"];
}
-
读取数据
//读取数据
-(void)presRead{
NSUserDefaults * ud =[NSUserDefaults standardUserDefaults];
id object = [ud objectForKey:@"name"];
NSString * name=(NSString*) object;
NSLog(@"name = %@", name);
object= [ud objectForKey:@"NUM"];
NSNumber * num =(NSNumber *)object;
NSLog(@"num =%@",num);
NSInteger iV=[ud integerForKey:@"INT"];
NSLog(@"iV =%ld", iV);
BOOL bV=[ud boolForKey:@"BOOL"];
float fV= [ud floatForKey:@"FLOAT"];
NSLog(@"bV =%d",bV);
NSLog(@"fV =%f", fV);
NSArray * array=[ud objectForKey:@"ARRAY"];
NSLog(@"array = %@",array);
}
-
删除指定key的缓存数据
[ud removeObjectForKey:@"ARRAY"];
-
测试日志
网友评论