ios开发中SDWebImage方法怎么用
导读:本文共17906字符,通常情况下阅读需要60分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:希望大家仔细阅读,能够学有所成!源码解析废话不多说看源码。1:在组件中提供了很多类似这样的方法-(void)sd_setImageWithURL:(nullableNSURL)url;-(void)sd_setImageWithURL:(nullableNSURL)urlplaceholderImage:(nullableUIImage)placeholder;2:于是乎所有的方法都会调用下面... ...
目录
(为您整理了一些要点),点击可以直达。希望大家仔细阅读,能够学有所成!
废话不多说看源码。
1:在组件中提供了很多类似这样的方法
2:于是乎所有的方法都会调用下面的这个方法
3:下面具体阅读代码 第一行执行的代码
解析:
1.在第一行创建了validOperationKey
的operationKey,是以当前扩展的类名命名。
2.执行sd_cancelImageLoadOperationWithKey
方法
在看一下去字典操作[self operationDictionary]
看到这里我们在返回继续看 这个函数的代码有点长,耐心看完啊。。。
这个loadImageWithURL函数在SDWebImageManager,并且是用单列调用,
上面都是初始化的操作,然后看下面的函数
这个函数就进入了SDWebimage缓存的策略了。
先说一下他的这一个策略缓存。
1:大家都是SDWebiamge都是先从缓存上查找,如果有就直接显示
2:如果不存在就在沙盒中查找
2.1如果存在,则把沙盒中的图片添加到imageCache中,取出显示
2.2 如果不存在在显示占位图,根据URL在operationCache是否存在下载操作
2.2.1 如果存在,说明该图片正在下载。
2.2.2如果不存在,创建图片下载操作,放到operationCache中
2.3 下载完成,将当前操作队列从operationCache中移除。并将下载的图片的添加在imageCache中。显示
先慢慢体会一下。。。(停留30秒)
看完该函数以后在回到上面的看这个快速查找缓存的方法回调
2.1 取消该控件对应的之前的所有的下载操作
2.2 开始根据图片的url做为key去查找
2.2.1 查找内存和硬盘上的缓存
2.3 创建下载队列下载图片
2.4 最后将进行的操作,放到view对应的opationsDicaionary的字典中。记录当前的操作队列
ios开发中SDWebImage方法怎么用的详细内容,希望对您有所帮助,信息来源于网络。