缓存机制
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);
}];
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);
}];
相关文章推荐
- CAS实战の获取多用户信息
- redis 对数组的操作
- 递归例子(Javascript)
- 公用表表达式(CTE)
- pthread_create会导致内存泄露
- 乐视TV2015校园招聘A第二个大的发行量(of中国Academy科学大学站)
- 编译:ffmpeg,精简ffmpeg.exe
- 插件二之页面加载进度条pace.js
- 使用FFmpeg将mp4转为ts(代码实现)
- verilog入门经验(二)--分频及counter的巧用
- 让 keil MDK 支持C99
- Crontab定时任务配置
- 移位
- 线宽对应的电流(硬件设计参考)
- iOS开发系列--NextPrevious On-Demand Resource Basics
- Android makefile文件语法规范及使用模板
- 《一个程序员的生命周期》读后感
- HDU3415
- fopen() 返回 NULL, 奇葩原因:当前进程打开多个句柄,忘记关闭。(bug)
- 可变参数和不可变参数的比较