- (NSOperation *)queryDiskCacheForKey:(NSString *)key done:(SDWebImageQueryCompletedBlock)doneBlock
作用:缓存中查找
现在memCache中查找,再在disk中查找(如果找到,存入缓存中)。
- (void)storeImage:(UIImage *)image recalculateFromImage:(BOOL)recalculate imageData:(NSData *)imageData forKey:(NSString *)key toDisk:(BOOL)toDisk
作用:先将图片存储在memCache中。然后判断图片类型,是否是png,如果是jpg,压缩质量为1,然后压缩。
检查路径文件夹是否存在,然后创建文件。
- (NSString *)defaultCachePathForKey:(NSString *)key 
作用: 1. 根据传入的key创建最终要存储时的文件名,进行了md5加密。
2.将存储的文件路径和文件名绑定在一起,作为最终的存储路径。
clear 缓存 
  1. removeImageForKeyfromDisk:withCompletion: // 异步地将image从缓存(内存缓存以及可选的磁盘缓存)中移除
  2. clearMemory // 清楚内存缓存上的所有image [self.memCache removeAllObjects];
  3. clearDisk // 清除磁盘缓存上的所有image
  4. cleanDisk // 清除磁盘缓存上过期的image
- (void)removeImageForKey:(NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(SDWebImageNoParamsBlock)completion
作用: 根据传入的key,删除缓存和磁盘。
- (void)clearDiskOnCompletion:(SDWebImageNoParamsBlock)completion
删除路径文件夹,并再创建一个文件夹。
- (void)cleanDiskWithCompletionBlock:(SDWebImageNoParamsBlock)completionBlock
作用:删除过期的缓存
1.根据self.diskCachePath生成NSURL和属性resourceKeys —>fileEnumerator
2.计算过期时间,(默认一周)
3。遍历文件夹 将过期的文件存入urlsToDelete 数组中。计算cache大小,并将file属性存入cacheFiles数组
4。删除urlsToDelete 数组中的文件
5,判断当前缓存大小是否大于maxCacheSize,直接将当前的cache大小降为maxCacheSize的一半
6. 删除的顺序为先删除旧的。
初始化 init
- (id)initWithNamespace:(NSString *)ns
1。创建isQueue队列
2.设置过期时间
3.初始化memCache
4.创建disk路径
5,添加通知:
内存警告 clearMemory
程序终止cleanDisk
后台backgroundCleanDisk

转载于:https://www.cnblogs.com/JShuo/p/8678167.html

7 SDImageCache相关推荐

  1. iOS 相册和网络图片的存取

    iOS 相册和网络图片的存取 保存 UIImage 到相册 UIKit UIKit 中一个古老的方法,Objective-C 的形式 void UIImageWriteToSavedPhotosAlb ...

  2. UIScrollView

    UIScrollView(包括它的子类 UITableView 和 UICollectionView)是 iOS 开发中最常用也是最有意思的 UI 组件,大部分 App 的核心界面都是基于三者之一或三 ...

  3. SDWebImage使用——一个可管理远程图片加载的类库

    SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下 ...

  4. iOS基础问答面试题连载-附答案

    2017-02-02 timhbw CocoaChina 以下是一些自己收集的比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基础不牢,地动山摇.文章末尾会提供PDF版的文档,方便 ...

  5. 源码阅读:SDWebImage(六)——SDWebImageCoderHelper

    该文章阅读的SDWebImage的版本为4.3.3. 这个类提供了四个方法,这四个方法可分为两类,一类是动图处理,一类是图像方向处理. 1.私有函数 先来看一下这个类里的两个函数 /**这个函数是计算 ...

  6. SDWebImage使用,图片加载和缓存

    本文转载至 http://blog.163.com/wzi_xiang/blog/static/659829612012111402812726/ 清除缓存: [[SDImageCache share ...

  7. SDWebImage开源库阅读分析(全)

    汇总记录: 本文基于SDWebImage 4.2.3版本进行分析和整理(链接地址). 整体目录结构: SDWebImage |----SDWebImageCompat 处理不同平台(iOS.TV.OS ...

  8. 多年iOS开发经验总结(一)

    为什么80%的码农都做不了架构师?>>>    http://www.jianshu.com/p/1ff9e44ccc78 总结了几个月的东西终于能和大家分享了,不多说,直接看东西! ...

  9. SDwebimage使用原理(转载)

    概述 SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理. ...

最新文章

  1. 一文概述2017年深度学习NLP重大进展与趋势
  2. python爬虫——从此不用再愁找不到小说txt文件
  3. crt mysql中文乱码_CRT 和mysql 中文乱码解决方式
  4. C语言与sqlserver数据库
  5. All in All,( UVa, 10340 )
  6. scrollView的几个属性contentSize contentOffset contentInset
  7. 线程的应用-实现Runnable接口创建线程
  8. 用设计模式去掉没必要的状态变量 —— 状态模式
  9. 如何写一个作用域安全的构造函数
  10. 新版本xx Chrome等主流浏览器将不再允许关闭点击跟踪
  11. eclipse支持html,让eclipse完全支持HTML/JS/CSS智能提示
  12. 服务器硬盘安装win10系统,硬盘安装win10的方法
  13. jspstudy启动mysql失败_Mysql 启动失败常见错误
  14. 半导体物理与器件_2017级光信息专业本科生选修课程:半导体物理与器件
  15. java中int型的最大值_java int 的最大值 Integer.MAX_VALUE
  16. Shiro中自定义Realm
  17. 互联网日报 | 得到披露招股书;格力集团35亿投资小米;淘宝村年交易额破万亿;2020北京车展开幕...
  18. 黑色主题的个人引导页,导航页html php源码
  19. NAND FLAASH基础
  20. 神经网络的前向和反向传播

热门文章

  1. 分布式、集群的概念、区别
  2. [洛谷2397]yyy loves Maths VI
  3. SRM 578 DIV 2
  4. 给小组新成员的一份信
  5. matlab 最大熵谱估计,基于Burg算法的最大熵谱估计
  6. php 字母数字混合排序,JavaScript_基于JS实现数字+字母+中文的混合排序方法,在上篇文章给大家介绍了JavaScr - phpStudy...
  7. string 释放_由String,String Builder,String Buffer 引起的面试惨案
  8. (45)System Verilog数组乘积运算
  9. (31)System Verilog验证计划及策略
  10. (3)zynq FPGA AXI4_Stream总线介绍