美文网首页
SDWebImage源码解读

SDWebImage源码解读

作者: biggerworld | 来源:发表于2017-11-22 20:03 被阅读0次

     最近帮忙经理面试了一些iOS开发,当问到是否看过SDWebImage源码时,都说看过。但是当问到具体实现时几乎都答错了,于是就有了写这篇文章的想法。
     这里主要SDWebImage的UIImageView的类别,因为这也是使用最多的。核心方法是

    - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock
    

     这个方法首先会在内存cache(一个nscache的集合)里面查找,如果没有查找到再去disk里面查找,如果都查找不到就去下载。其实sd默认还为使用者做了一个操作,就是将下载下来或者disk读取到的图片数据解码,因为直接得到的是编码压缩后的图片数据,不是位图,要把它们渲染到屏幕前就需要进行解码转成位图数据。
    下面是解码方法:

     image = [UIImage decodedImageWithImage:scaledImage];
    //解析操作SDWebImageDecoder类的
    + (UIImage *)decodedImageWithImage:(UIImage *)image {
    

    所以cache里默认存储的是位图,位图体积大所以也是一种空间换时间的操作。

    相关文章

      网友评论

          本文标题:SDWebImage源码解读

          本文链接:https://www.haomeiwen.com/subject/yllovxtx.html