简介
当客户端需要从服务器端进行获取数据的时候,为了提高程序的响应速度可以考虑使用缓存,缓存分为内存缓存和硬盘缓存。程序只能对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];