使用YYCache进行数据缓存-IOS

需求:

某一个列表的数据,当有网络的情况下显示数据,当没有网络的情况下同样能显示数据。

需求分析以及实现功能:

如果App首次启动就没有网络没有从没从网络上获取过数据,那么当没网络的情况下是无法显示数据的,所以需求并不是很严谨。应该是列表中之前显示过数据,某一次再显示这个列表中数据的时候无网络了,这个时候同样需要显示数据。
这个时候我们需要用到缓存,将之前从网络上获取的数据缓存到本地(持续存储),以备下次无网络的时候显示缓存数据。

使用YYCache进行数据的缓存

我们选择使用YYCache进行数据的缓存。
每次网络请求成功之后我们都会将最新的数据进行存储,看代码:

  YYCache *cache = [YYCache cacheWithName:@"ResponseCache"];
  if ([cache containsObjectForKey:url] && networkErrow) {    // 如果有缓存且网络有问题
    id response = [cache objectForKey:url];
    success(response);
  return;
  }
   [[MNNetworkTool shareService] GET:url parameters:param progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                if (mnnetSet.saveCache) {  // 如果需要缓存,进行缓存
                    [cache setObject:dic forKey:url];
                }
                success(responseObject);
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            failed();
        }];

清除缓存:

  YYCache *cache = [YYCache cacheWithName:@"ResponseCache"];
  [cache removeAllObjects]; // 移除所有缓存

下面给大家一个YYCache使用的简单demo***https://gitee.com/liangsenliangsen/the_simple_use_of_yycache.git

作者:梁森的简书
链接:https://www.jianshu.com/p/b844bfc173a8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 孩子坏行为背后都是有诉求的,假如父母理解孩子的需求,就会看到他们真正需要的帮助在哪里,孩子呼唤的永远是被看...
    罗睿玥阅读 3,746评论 1 17
  • 每晚分享一种生活。 最近之前,总是感觉一切都是很糟糕的样子,对什么都是懒懒的。天上的云是懒懒的,路边的栅栏懒懒的,...
    木子白说阅读 1,397评论 0 1