SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能。它具有以下功能:
- 提供UIImageView的一个分类,以支持网络图片的加载与缓存管理
- 一个异步的图片加载器
- 一个异步的内存+磁盘图片缓存
- 支持GIF图片
- 支持WebP图片
- 后台图片解压缩处理
- 确保同一个URL不会被反复加载
- 确保下载及缓存时,主线程不被堵塞
从github上对SDWebImage使用情况可以看出,SDWebImage在图片下载及缓存的处理还是被认可的。在本文中,我们主要从源码的角度来分析一下SDWebImage的实现机制。讨论的内容将主要集中在图片的下载及缓存,而不包含对GIF图片及WebP图片的支持操作。不过在3.8.2版本以后,SDWebImage将会使用NSURLSession代替原来的NSURLConnection,主要是更新的是下载功能部分。具体变化可以看:点这里。目前截止到当前时间,最新的版本为4.0.0-beta2,这篇文章是在4.0.0-beta2基础上进行剖析。
阅读全文