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