SDWebImage中sd_setImage返回的cacheType数值含义及缓存疑问
关于SDWebImage在UITableViewCell中缓存异常及枚举值的疑问
场景与代码
我在UITableViewCell中使用SDWebImage的sd_setImage()方法为UIImageView加载带缓存的图片,代码如下:
imageView.sd_setImage(with: url, placeholderImage: defaultImage) { image, error, cacheType, cacheURL in }
遇到的问题
- 偶尔加载新单元格时,本该存在于缓存中的图片却从服务器重新获取,无法定位原因。
- 调试时打印
cacheType,仅显示0、1、2这类整数值,在SDWebImage官方文档中找不到这些数值的说明。查找到Objective-C头文件中定义的SDImageCacheType枚举,现将其定义及注释翻译为中文:
typedef NS_ENUM(NSInteger, SDImageCacheType) { /** * 查询/检查操作的返回值:图片不在缓存中 * 请求操作中:该类型无效,无作用 */ SDImageCacheTypeNone, /** * 查询/检查操作的返回值:图片来自磁盘缓存 * 请求操作中:仅处理磁盘缓存 */ SDImageCacheTypeDisk, /** * 查询/检查操作的返回值:图片来自内存缓存 * 请求操作中:仅处理内存缓存 */ SDImageCacheTypeMemory, /** * 查询/检查操作的返回值:无效,无作用 * 请求操作中:同时处理内存缓存和磁盘缓存 */ SDImageCacheTypeAll };
疑问
是否只有我觉得SDWebImage的文档极其晦涩难懂?
内容的提问来源于stack exchange,提问作者SafeFastExpressive
相关产品推荐
相关产品推荐

