分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

8 SDWebImage 流程

发布时间:2023-09-06 01:47责任编辑:顾先生关键词:Web
流程图:
 
 
1.UIimageView + WebCache 类 sd_setImageWithURL 方法,实现异步加载图片。 
在分类中,实现 sd_imageURL属性,保存url .
将placeHolder 付给image
2. SDWebImageManager(单利),调用 downloadImageWithURL方法
检验url 是NSString NSURL 并进行转换。
创建 SDWebImageCombinedOperation对象
验证self.failedURLs 是否包含这个url,url为空等一系列判断。
self.runningOperations添加URL
 
3. SDImageCache对象(属性)调用 queryDiskCacheForKey 方法,参数key(url转为string),回调block。
跟库key在memCache( NSCache)属性中查找,是否含有image 
如果h缓存中没有,起一个异步线程,去沙盒中查找,如果找到,解压并转为image。然后存进memCache属性中。
UIView + webCacheOperation 分类中, operationDictionary属性,存入 
 UIImageViewImageLoad = "<SDWebImageCombinedOperation: 0x600000029e40>"
 
4.沙盒执行完之后,回调block( SDWebImageManager中)。
制定优先级
调用 imageDownloader( SDWebImageDownloader)属性的 downloadImageWithURL方法,参数 url,options,progress,completedBlock,f返回值就是封装了request的 SDWebImageDownloaderOperation类 
 
调用addProgressCallback
起一个( dispatch_barrier_sync)同步阑珊,在自己启的线程中, self.URLCallbacks属性用来存储 completedBlock( SDWebImageDownloaderCompletedBlock)。
设置超时时间,如果没有设置,默认15s ,然后封装 NSMutableURLRequest请求网络,拼接参数(cookies,headerd,等),operation的优先级, shouldDecompressImages属性等。
downloadQueue( NSOperationQueue)属性添加 operation
 
调用 SDWebImageDownloaderOperation对象的 initWithRequest方法,这个类用于下载。
 
c初始化SDWebImageDownloaderOperation类以后,将operation 加入到 NSOperationQueue中,  [wself.downloadQueue addOperation:operation];
 
然后就会调用SDWebImageDownloaderOperation类中的start方法(重写的 NSOperation -start)
 
 
z知识点:1. dispatch_barrier_sync
  1. NSOperation
 
 
类的作用及其关系:
 
 
 
 

8 SDWebImage 流程

原文地址:https://www.cnblogs.com/JShuo/p/8678166.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved