SDWebImage里面给UIImageView加载图片的逻辑是什么样的?

非常非常喜欢SDWebImage,就算后来AF也做了图片缓存,我也还是一直使用。图片缓存真的是一件令人头疼的事,但是SDWebImage封装了一切,你所需要的只是简单的set一个URL;
1、设置一个展位图(可选择);
2、根据URL去内存中找,找到返回图片
3、内存找不到,硬盘找,找到返回图片,内存做备份
4、硬盘还找不到,去下载,返回图片,并进行存储(硬盘,内存)。

其中有几点技术细节比较重要,
1、图片在内存中是key-value的方式。
2、在硬盘中是data的方式,imageWithData方法获取。
3、key-value方式是url的MD5。
4、注册内存和硬盘通知,如果很吃紧,就删除部分。
很多技术细节,要看源码。

推荐阅读更多精彩内容

  • 项目中一直都有使用SDWebImage,对这个框架有一定的了解,但是体系却未能贯通,因此特地整理下,主要参考: i...
    果哥爸阅读 1,299评论 2 13
  • SDWebImage[https://github.com/rs/SDWebImage] 分析 Version 4...
    wyanassert阅读 1,596评论 0 8
  • 功能:图片下载、图片缓存、下载进度监听、gif处理等等项目地址:https://github.com/rs/SDW...
    我是滕先生阅读 16,509评论 8 135
  • 技术无极限,从菜鸟开始,从源码开始。 由于公司目前项目还是用OC写的项目,没有升级swift 所以暂时SDWebI...
    充满活力的早晨阅读 12,304评论 0 2
  • 大鱼大肉,总会有吃腻的时候。 因此,适当的时候,来盘野菜,也会别有风味。 送丧的途中,宝玉跟着凤姐到一庄内休息,见...
    那座野山阅读 561评论 0 0
  • 比如A公司销售一批货物给B,售价100元,同时收取包装物押金10元。然后这个时候考虑给对方开票的问题,销售货物10...
    刘键阅读 6,964评论 0 1
  • Mushr00mChan阅读 56评论 0 0
  • 在观看电影摔跤手苏丹的时候,情节的波动太过人工化,没有真实的感觉。同时摔跤吧爸爸却根据真实事件改变,获得了很高的豆...
    科幻经典阅读 119评论 0 0
  • 游戏是为了欺骗玩家的感情,让你觉得面前的游戏世界是真实的 游戏AI也是为了欺骗玩家的大脑,让你觉得你面前的挑战是真...
    xd_awayer阅读 1,563评论 0 0