博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sdwebimage缓存图片
阅读量:6980 次
发布时间:2019-06-27

本文共 916 字,大约阅读时间需要 3 分钟。

当使用SDWebImage时,如果用相同图片名的图片替换掉了原始缓存的图片,当再次请求的时候,还是使用的缓存图片,图片不会发生改变

 

原因:图片在NSCache中是以absolute url作为key存储,在磁盘缓存目录中是以原始url进行md5后的字符串作为文件名存储。查询匹配的时候只按key和文件名匹配。

证据:NSCache
- (NSString *)cacheKeyForURL:(NSURL *)url
{
#if NS_BLOCKS_AVAILABLE
    if (self.cacheKeyFilter)
    {
        return self.cacheKeyFilter(url);
    }
    else
    {
        return [url absoluteString];
    }
#else
    return [url absoluteString];
#endif
}
SDImageCache
- (NSString *)cachePathForKey:(NSString *)key
{
    const char *str = [key UTF8String];
    unsigned char r[CC_MD5_DIGEST_LENGTH];
    CC_MD5(str, (CC_LONG)strlen(str), r);
    NSString *filename = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
                          r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15]];
    return [diskCachePath stringByAppendingPathComponent:filename];
}
备注:以上结论在2.x版本下有效,3.0以上版本不了解。

转载于:https://www.cnblogs.com/ritian/p/5473858.html

你可能感兴趣的文章
有点小高兴
查看>>
linux svn使用方法
查看>>
linux入门(三)常见Linux指令及其用法
查看>>
php-fpm慢执行日志
查看>>
Course
查看>>
[UML]UML系列——包图Package
查看>>
jquery 获取Select option 选择的Text和Value
查看>>
后海日记(8)
查看>>
百度云满速下载(转)
查看>>
HTML5学习之二:HTML5中的表单2
查看>>
CSS盒模型及边距问题
查看>>
UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索
查看>>
AlexNet 网络详解及Tensorflow实现源码
查看>>
day07 -文件的基本操作
查看>>
关于BIO | NIO | AIO的讨论
查看>>
linux 重命名文件和文件夹
查看>>
java基础回顾
查看>>
Java语法基础-序列化
查看>>
docker 安装 RabbitMQ
查看>>
阿里巴巴开源技术汇总:115个软件(一)
查看>>