iOS 的 SDWebImage的底层实现

SDWebImage具体实现过程

1. 利用NSOperationQueue 和 NSOperation 下载图片

2. 还使用GCD的一些函数来解码GIF图片

gif图片 (gif分解)->imageIO 切除所有帧 (每一帧都是UIImage对象)(这个过程比较耗时,放入异步线程中) 

UIImageView * imageView;

imageView.animationImages = ..;

3. 利用URL作为key, NSOperation 作为 value

4. 利用URL作为key, UIImage 作为 value

有些图片加载比较慢怎么处理?

1. 图片下载放在异步线程

2. 图片下载过程中使用占位图片

3. 如果图片过大,可以考虑多线程断点下载 -> 设置请求头信息

原文地址:https://www.cnblogs.com/aunty/p/5120021.html