SDWebImage 禁用缓存(最新版)

SDWebImage是iOS开发中十分流行的库,大多数的开发者在下载图片或者加载网络图片并且本地缓存的时候,都会用这个框架。官方给出的定义为:

//一个异步下载图片并且支持缓存的 UIImageView 分类
Asynchronous image downloader with cache support as a UIImageView category 

缓存流程:在callCacheProcessForOperation判断用户是否设置了仅下载,如果设置了直接进入到callDownloadProcessForOperation开始下载流程,如果没设置则先调用queryImageForKey:(key, options, context, completionBlock)适配SDImageCacheOptions,然后再调用queryCacheOperationForKey开始缓存查找,首先在内存中查找,如果有则返回;没有则在磁盘中查找,如果都没有查找到则进入下载流程

SDWebImageContext / SDWebImageMutableContext:

可以看到SDWebImageContext / SDWebImageMutableContext其实就是
SDWebImageContextOptionkey、id(指定类型或者协议)为valueNSDictionary/NSMutableDictionary

typedef NSDictionary SDWebImageContext;
typedef NSMutableDictionarySDWebImageMutableContext;

而 SDWebImageContextOption 是一个可扩展的String枚举

typedef NSString * SDWebImageContextOption NS_EXTENSIBLE_STRING_ENUM;

SDWebImage定义了10个SDWebImageContextOption的key、对应的value类型和定义的位置
|

Key Value Define
SDWebImageContextSetImageOperationKey NSString SDWebImageDefine.m
SDWebImageContextCustomManager SDWebImageManager SDWebImageDefine.m
SDWebImageContextImageTransformer id SDWebImageDefine.m
SDWebImageContextImageScaleFactor CGFloat SDWebImageDefine.m
SDWebImageContextStoreCacheType SDImageCacheType SDWebImageDefine.m
SDWebImageContextDownloadRequestModifier id SDWebImageDefine.m
SDWebImageContextCacheKeyFilter id SDWebImageDefine.m
SDWebImageContextCacheSerializer id SDWebImageDefine.m
SDWebImageContextLoaderCachedImage UIImage/NSImage SDImageLoader.m

具体使用方法

[self.imageView sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:nil options:SDWebImageFromLoaderOnly context:@{SDWebImageContextStoreCacheType:@"SDImageCacheTypeNone"}];

参考链接

你可能感兴趣的:(SDWebImage 禁用缓存(最新版))