为了节约流量,同时也是为了更好的用户体验,目前很多应用都使用本地缓存机制于是我从网上查阅了相关的资料,发现总体上说有两种方法。一种是自己写缓存的处理,一种是采用ASIHTTPRequest中的ASIDownloadCache。
在这里我主要介绍第一种自习写缓存的处理方式。
1.主要思路就是第一次有网络加载数据将数据写入沙盒中,然后以后登录对网络状态进行判断,若无网络就使用沙盒数据,有网络就请求API获得数据.
//写入数据
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES);
//获得沙盒路径
NSString*path = [arr =objectAtIndex:0];
NSString*pStr = [path=stringByAppendingString:@"/data.txt"];
NSData *data1=NSData dataWithContentsOfFile:pStr];
//获得沙盒数据
NSArray*array=[NSKeyedUnarchiver unarchiveObjectWithData:data1];
但是这种方式要注意,就是缓存数据会越来越多,所以基本APP都在个人设置里有个删除缓存的方法
//删除缓存
NSFileManager * fileManager = [[NSFileManager alloc]init];
[fileManager removeItemAtPath:path error:nil];
deepin20怎么新增字体? deepin20安装字体的教程
Linux如何给文件权限? linux给文件添加可执行权限的技巧
deepin20桌面图标样式怎么修改? deepin更换图标主题的技巧
virtualbox打不开虚拟机怎么办? linux无法访问virtualbox的解决办法
deepin怎么注销系统? deepin系统注销与切换用户的方法
Manjaro linux怎么调鼠标速度? Manjaro鼠标设置光标速度的技巧