You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:01:18