简介
当客户端需要从服务器端进行获取数据的时候,为了提高程序的响应速度可以考虑使用缓存,缓存分为内存缓存和硬盘缓存。程序只能对GET请求进行缓存,POST请求不能就行缓存
系统方法实现缓存步骤
1、创建要获取数据的url
NSURL *url = [NSURL URLWithString@""];
2、创建请求(一个请求对应一个缓存)
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
3、设置缓存策略
//设置缓存策略
NSURLRequestUseProtocolCachePolicy = 0,//默认,取决于协议
NSURLRequestReloadIgnoringLocalCacheData = 1,忽缓存重新请求
NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented 未实现
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,忽略缓存重新请求
NSURLRequestReturnCacheDataElseLoad = 2,有缓存就用缓存 没有缓存就重新请求
NSURLRequestReturnCacheDataDontLoad = 3,有缓存就缓存 没有缓存就不发请求 当请求出错处理(用于离线程序)
NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
request.cachePolicy = NSURLRequestReturnCacheDataElseLoad;//有缓存就用缓存 没有缓存就重新请求
4、判断是否有缓存 或定期删除缓存
// 定期处理缓存(将时间保存在沙盒中,对时间进行判断 如果到时间就清除当前请求的缓存)
// if (缓存没有达到7天) {
// request.cachePolicy = NSURLRequestReturnCacheDataElseLoad;
// }
// 获得全局的缓存对象
NSURLCache *cache = [NSURLCache sharedURLCache];
// if (缓存达到7天) {
// [cache removeCachedResponseForRequest:request];
// }
// lastCacheDate = 2014-06-30 11:04:30
清除所有缓存方法:[cache removeAllCachedResponses];