美文网首页
iOS源码解读

iOS源码解读

作者: SmoothV | 来源:发表于2018-07-18 14:27 被阅读41次
    SDWebImage源码解读

    看了UIImageView+WebCache这个分类里面常见[UIImageView sd_setImageWithURL:urplaceholderImage:]方法的内部实现的过程,有所收获.

    内部实现流程图.png
    • 首先该方法最终会调用下面方法实现


      主方法.png
    • 进入主方法里面, 如果先前设置UIImageView的下载操作未完成,取消UIImageView先前下载操作, 因为我要给UIImageView设置新的图片 , 完全不用去考虑先前给UIImageView设置了什么图片.


      取消先前的下载操作.png
      取消下载操作的具体实现.png

      -然后创建一个新的图片下载操作,然后设置到UIView的一个自定义字典属性(operationDictionary)中


      创建一个下载任务.png
    • 创建图片下载操作的实现过程是: 根据给定的URL生成一个唯一的Key, 根据key先从内存中读取图片缓存,若没有命中内存缓存则读取磁盘缓存,如果磁盘缓存命中,那么将磁盘缓存读到内存中成为内存缓存。如果都没有命中缓存的话,那么就在执行的doneBlock中开始下载图片。


      queryCacheOperationForKey.png
    key获取图片.png

    如果内存和磁盘中没有缓存,开启下载


    下载.png

    相关文章

      网友评论

          本文标题:iOS源码解读

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