SDWebImage小记

基础了解可参考SDWebImage的使用以及原理介绍

问题1:加载高清大图时怎么处理?

解决:解决方法在此        更深入学习可参考:优化高分辨率图

AFN也可以用来加载图片。

问题2: SDWebImage 的内存警告是如何处理的?

解决:利用通知中心观察

- UIApplicationDidReceiveMemoryWarningNotification 接收到内存警告的通知

执行 clearMemory 方法,清理内存缓存!

- UIApplicationWillTerminateNotification 接收到应用程序将要终止通知

执行 cleanDisk 方法,清理磁盘缓存!

- UIApplicationDidEnterBackgroundNotification 接收到应用程序进入后台通知

执行 backgroundCleanDisk 方法,后台清理磁盘!

通过以上通知监听,能够保证缓存文件的大小始终在控制范围之内!

clearDisk 清空磁盘缓存,将所有缓存目录中的文件,全部删除!实际工作,将缓存目录直接删除,再次创建一个同名空目录!

问题3:SDWebImage 缓存图片的名称是怎么确定的?

md5

如果单纯使用 文件名保存,重名的几率很高!

使用 MD5 的散列函数!对完整的 URL 进行 md5,结果是一个 32 个字符长度的字符串!

问题4:SDWebImage是如何区分不同格式的图像的

根据图像数据第一个字节来判断的!

PNG:压缩比没有JPG高,但是无损压缩,解压缩性能高,苹果推荐的图像格式!

JPG:压缩比最高的一种图片格式,有损压缩!最多使用的场景,照相机!解压缩的性能不好!

GIF:序列桢动图,特点:只支持256种颜色!最流行的时候在1998~1999,有专利的!

问题5:SDWebImage 的最大并发数是多少?

maxConcurrentDownloads = 6

是程序固定死了,可以通过属性进行调整!

问题6:SDWebImage 的内存缓存是用什么实现的?

NSCache

问题7:图片文件缓存的时间有多长?

    1周  _maxCacheAge = kDefaultCacheMaxCacheAge

问题8:clear 和 clean 的区别?

    clear :  先把之前的缓存文件夹删除掉,然后在新建一个文件夹。

    clean:  先删除过期的文件,然后计算剩余缓存文件的大小(currrentSize)>maxSize,继续删除,按照它缓存文件创建的时间删除,直到(currrentSize)<=maxSize

后续等待完善。。。。

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

推荐阅读更多精彩内容

  • 导语:这是SDWebImage源码理解的第一篇,本篇先介绍图片解码相关的背景知识,然后介绍SDWebImage中解...
    南华coder阅读 7,582评论 12 48
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,019评论 3 119
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 面容模糊,回忆模糊 甜蜜模糊,苦涩也模糊。 你最后说的话,还没模糊。 耿耿于怀不是,念念不忘不是。 不甘,不平仍有一些。
    raner2222阅读 140评论 0 0
  • 一、《致十九大》 翘首京城云路遥, 群英荟萃涌新潮。 天开新局红都耀, 蝉歇余声腐气消。 云住蓝天琼海澈, ...
    月影随形阅读 479评论 0 0