zoukankan      html  css  js  c++  java
  • sdwebimage缓存图片

    当使用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以上版本不了解。

  • 相关阅读:
    南阳779
    南阳599
    南阳484
    margin叠加相邻两个元素的上下margin是叠加在一起
    margin
    padding
    css05 字体以及行间距
    mysql相似于oracle的to_char() to_date()方法
    sqlite两表更新update
    SQL查找重复项目
  • 原文地址:https://www.cnblogs.com/ritian/p/5473858.html
Copyright © 2011-2022 走看看