美文网首页
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

相关文章

  • GPUImage 相关资料

    iOS GPUImage源码解读(一)https://cloud.tencent.com/developer/ar...

  • SD源码解读遇见的问题

    SD源码解读依据的文章来自:http://www.cocoachina.com/ios/20170511/1925...

  • iOS源码解读

    SDWebImage源码解读 看了UIImageView+WebCache这个分类里面常见[UIImageView...

  • 三:iOS - dsBridge客户端源码备注

    主要是用与第四篇的原理分析铺垫四:iOS - dsBridge源码详细解读[https://www.jianshu...

  • 源码解读RCTImageView(iOS)

    [TOC] 源码解读RCTImageView(iOS) 查看官网自定义UI组件的文档, 可以知道每个自定义的UI组...

  • [iOS]JKDBModel源码解读

    JKDBModel是一个对FMDB进行二次封装的一个轻量级框架,进一步简化了sql语句,也便于对数据库进行管理。使...

  • iOS MMDrawerController源码解读

    提前说好,本文绝对不是教你如何使用MMDrawerController这个第三方库,因为那太多人写了 ,也太简单了...

  • iOS initialize源码解读

    initialize方法在类第一次接收消息时会被调用,而且只会调用一次,不使用类时,该方法不会被调用,下面来证明下...

  • iOS SDWebImage源码解读

    SDWebImage是在iOS开发中被广泛使用的一个第三方开源框架,对于网络图片的请求使用非常方便。 一、总体概述...

  • iOS - Runloop 源码解读

    这是我看过苹果代码量最大的一个函数,先占个位,抽个时间解读~

网友评论

      本文标题:iOS源码解读

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