美文网首页
SDWebImage源码阅读(三)

SDWebImage源码阅读(三)

作者: 落叶兮兮 | 来源:发表于2020-06-28 17:11 被阅读0次

SDWebImageDownloader.h(异步下载专用和优化图像加载)

关于SDWebImageDownloaderOptions枚举的各个含义在上一篇中已经写过,链接为:
https://www.jianshu.com/p/81af9952c015
另外,SDWebImageDownloaderExecutionOrder的各个枚举(定义的下载的顺序问题)的含义为:

//默认值,所有的下载操作都会按照队列的先入先出来执行
SDWebImageDownloaderFIFOExecutionOrder,
//所有的下载操作都会按照栈的后入先出来执行
SDWebImageDownloaderLIFOExecutionOrder

在SDWebImageDownloader.h文件中有个属性需要注意一下

//对下载和缓存的映像进行解压缩可以提高性能,但会消耗大量内存。默认为YES。如果由于内存消耗过多而导致崩溃,请将此设置为NO。
@property (assign, nonatomic) BOOL shouldDecompressImages;

另外.h文件中定义的相应的方法的作用如下:

//使用指定的会话配置创建下载程序的实例,返回downloader的新实例
- (nonnull instancetype)initWithSessionConfiguration:(nullable NSURLSessionConfiguration *)sessionConfiguration NS_DESIGNATED_INITIALIZER;

//为http的头部设置赋值,将其添加到每次下载的http的请求中
- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(nullable NSString *)field;
//返回指定HTTP头字段的值。
- (nullable NSString *)valueForHTTPHeaderField:(nullable NSString *)field;
//可以在每次SDWebImage构造一个请求时使用去操作下载图像。
- (void)setOperationClass:(nullable Class)operationClass;
//根据给定的url创建一个异步下载实例
- (nullable SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url
                                                 completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
//根据给定的url创建一个异步下载实例
- (nullable SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url
                                                   options:(SDWebImageDownloaderOptions)options
                                                  progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
                                                 completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
//取消之前使用-downloadImageWithURL:options:progress:completed:创建的下载(根据token来取消)
- (void)cancel:(nullable SDWebImageDownloadToken *)token;
//设置下载的暂停状态
- (void)setSuspended:(BOOL)suspended;
//取消所有的下载
- (void)cancelAllDownloads;
//使用给定的配置重新创建一个新的会话,所有现存的在队列中的下载操作都会被取消
- (void)createNewSessionWithConfiguration:(nonnull NSURLSessionConfiguration *)sessionConfiguration;
//使会话取消,取消挂起的操作。另外,当你使用的是自定义的下载器而非单例下载器时,你应该调用这个方法以避免内存泄漏。
- (void)invalidateSessionAndCancel:(BOOL)cancelPendingOperations;

SDWebImage源码阅读(一)
SDWebImage源码阅读(二)
SDWebImage源码阅读(三)
SDWebImage源码阅读(四)
SDWebImage源码阅读(五)
SDWebImage源码阅读(六)

相关文章

网友评论

      本文标题:SDWebImage源码阅读(三)

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