您的位置:首页 > 其它

缓存机制

2015-06-18 09:50 267 查看
//获取缓存地址

NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES)firstObject];

NSLog(@"%@",caches);

NSString *path =
@"http://192.168.2.162/logo.php?userName=jereh&pwd=123";

NSURL *url = [NSURL
URLWithString:path];

//用可变的请求 NSMutableURLRequest

NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url];

// NSURLRequestReturnCacheDataElseLoad
如果有缓存则返回缓存,没有缓存就下载(缓存是现在内存中取,然后再到本地存储中取,所以删除本地存储缓存,但是内存中还有,只有重新运行程序,内存中的缓存才删除)

//设置缓存模式(能用的又四种)

request.cachePolicy = NSURLRequestReturnCacheDataElseLoad;

//清理缓存(这是一个单例)

NSURLCache *cach = [NSURLCache
sharedURLCache];

//判断是不是有缓存

NSCachedURLResponse *responce = [cach
cachedResponseForRequest:request];

if (responce==nil)
{

NSLog(@"没有缓存");
}

else{

NSLog(@"有缓存");

//删除缓存

[cach removeAllCachedResponses];

}

//异步下载数据
[NSURLConnection
sendAsynchronousRequest:request
queue:[NSOperationQueue
mainQueue] completionHandler:^(NSURLResponse *response,
NSData *data, NSError *connectionError) {

NSString *str = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];

NSLog(@"%@",str);
}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: