为了节约流量,同时也是为了更好的用户体验,目前很多应用都使用本地缓存机制于是我从网上查阅了相关的资料,发现总体上说有两种方法。一种是自己写缓存的处理,一种是采用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];
时间: 2024-10-28 05:23:58