模仿SDWebImage获取和清理缓存(一行代码)

楚门

背景

现如今每个app都有清除缓存的功能,但是缓存的主要内容是图片相关的信息,而SDWebImage已经帮我们做好了缓存的功能,也已经实现了清除缓存的功能,因此可以模仿该框架封装我们自己的工具类.


废话不多说,直接看效果展示:

界面简洁,但是内容丰富

如何使用?
点击这个传送门,就可以直接下载该工具类,直接使用即可.

  • 在展示的界面的viewDidLoad方法中,直接调用该工具类,传入相应的参数即可.

该工具类的优点

该工具类主要包括

  • 获得缓存和清除缓存两大块
  • 通过子线程计算耗时操作
  • 在主线程通过block实现回调传值的操作
  • 大大优化了界面的性能等.

重要思想

耗时操作

  • 很好的控制了耗时操作导致的用户体验效果的改善
  • 通过遍历获取传入参数的路径下的所有文件,然后判断是否是文件夹,给予排除
  • 通过遍试之后,就可以获得总大小
耗时操作

block回调的操作

  • 将计算的值,回传给外界的方法调用处
  • 由于要在界面上进行相应的显示,因此在工具类内部直接切换到了主线程中
  • 如果不切换主线程,将会没有显示
回调在界面处--刷新操作

以上就是,本文的主要思想,再附一个demo的传送门,内部附赠了使用的简单demo.内部有详尽的注释.

Come On,buddy!

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 小雨哥 小雨哥是我的老乡,也是和我一起工作七年的同事。我换了好几个单位,经历的同事不计其数,但很少有像这样纯粹、简...
    重庆风铃阅读 1,291评论 5 1
  • 《史记·高祖本纪》开篇载:“高祖,沛丰邑中阳里人,姓刘氏,字季,父曰太公,母曰刘媪。其先刘媪尝息大泽之陂,梦与神遇...
    衬衣_c2d1阅读 550评论 0 2
  • 早上和往常一样八点醒来,和往常一样睁开眼睛,关掉手机闹钟… 手机闹钟,现在你还有除了手机之外的闹钟吗? 关掉闹钟,...
    思绪的速度阅读 103评论 0 0