您的位置:首页 > 理论基础 > 计算机网络

iOS开发网络篇—数据缓存

2015-10-05 17:52 519 查看
 缓存一般是对get方法进行缓存。get方法是用来查询数据的。例如从网络上获取图片,而post方法一般是提交任务,提交图片等等虽然都可以使用缓存,但是get相对校对的使用缓存。在IOS5之前支持内存缓存。在IOS5之后支持内存和硬盘双缓存。 
   在IOS中想用缓存技术需要用到NSURLCache,NSCacheRULResponse类。
  ----------------------------------------------------------------------------------------------------分割线
  IOS提供NSURLCache一个静态方法。[NSURLCacheshareURLCache];当然也可以自定义. 设置缓存NSMutableURLRequest*request=nil; 
  request.cachePolicy=NSURLRequestReturnCacheDataElseLoad  ;
IOS对NSURLRequest提供了7种缓存。但是能用的只有四种. 
NSURLRequestUserProtocolCachePolicy、、默认的缓存策略 
  NSURLRequstReloadIgnoringLocalCacheData.、。。忽略缓存,重新请求
  NSURLRequstReturnCahceDataElseLoad 、、、有缓存就用缓存,没有缓存就重新请求
  NSURLRequestReturnCacheDataDontLoad、、、有缓存就用缓存,没有缓存就不发请求 
需要定期清理缓存缓存(比如7天清理一次,在后台) 
NSString*path=@"http://www.baidu.com";NSURL*url=[NSURLURLWithString:path];NSMutableURLRequest*request=[NSMutableURLRequestrequestWithURL:url];request.cachePolicy=NSURLRequestReturnCacheDataElseLoad;NSURLCache*urlCahe=[NSURLCachesharedURLCache];NSCachedURLResponse*cacheRequest=[urlCahecachedResponseForRequest:request];[NSURLConnectionsendAsynchronousRequest:requestqueue:[NSOperationQueuemainQueue]completionHandler:^(NSURLResponse*response,NSData*data,NSError*connectionError){if(data){NSString*text=[[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];NSLog(@"%@",text);}}];
NSURLCache*urlCache=[NSURLCachesharedURLCache]; 
[urlCacheremoveAllCachedResponses];
  像今日头条这样的应用一般在没有网的时候也能加载一部分数据 在viewDIdLoad中加载本地缓存的数据在viewWillAppear中加载网络请数据。        
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS 网络缓存