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

  • 相关阅读:
    软工实践个人总结
    第03组 每周小结 (3/3)
    第03组 每周小结 (2/3)
    第03组 每周小结(1/3)
    第03组 Beta冲刺 总结
    第03组 Beta冲刺 (5/5)
    第03组 Beta冲刺 (4/5)
    第03组 Beta冲刺 (3/5)
    第03组 Beta冲刺 (2/5)
    第03组 Beta冲刺 (1/5)
  • 原文地址:https://www.cnblogs.com/ritian/p/5473858.html
Copyright © 2011-2022 走看看