iOS开发网络篇—数据缓存

  缓存一般是对get 方法进行缓存。get 方法是用来查询数据的。例如从网络上获取图片,而post 方法一般是提交任务,提交图片等等虽然都可以使用缓存,但是get 相对校对的使用缓存。 在IOS5 之前 支持内存缓存。在IOS5之后支持内存和硬盘双缓存。 
     在IOS中想用缓存技术 需要用到NSURLCache , NSCacheRULResponse 类。
    ----------------------------------------------------------------------------------------------------分割线
    IOS 提供NSURLCache 一个静态方法。[NSURLCache shareURLCache]; 当然也可以自定义 .  设置缓存 NSMutableURLRequest *request=nil; 
    request.cachePolicy= NSURLRequestReturnCacheDataElseLoad    ;
    IOS 对NSURLRequest 提供了7种缓存。但是能用的只有四种. 
    NSURLRequestUserProtocolCachePolicy 、、 默认的缓存策略 
    NSURLRequstReloadIgnoringLocalCacheData. 、。。 忽略缓存,重新请求
    NSURLRequstReturnCahceDataElseLoad   、、、有缓存就用缓存,没有缓存就重新请求
    NSURLRequestReturnCacheDataDontLoad 、、、有缓存就用缓存,没有缓存就不发请求 
    需要定期清理缓存缓存 (比如7天清理一次,在后台)   

    NSString *path=@"http://www.baidu.com";
    NSURL *url = [NSURL URLWithString:path];
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
    request.cachePolicy = NSURLRequestReturnCacheDataElseLoad;
    NSURLCache *urlCahe = [ NSURLCache sharedURLCache];
    NSCachedURLResponse *cacheRequest= [urlCahe cachedResponseForRequest:request ];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        if (data) {
            NSString *text=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"%@",text);
        }
    }];
   NSURLCache  *urlCache= [NSURLCache sharedURLCache ]; 
   [urlCache  removeAllCachedResponses ]; 
 

   像今日头条这样的应用一般 在没有网的时候也能加载一部分数据

  在 viewDIdLoad 中加载本地缓存的数据在 viewWillAppear 中加载 网络请数据。


  

          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值