我正在使用SDWebImage从URL加载图像。当在服务器上更新图像时,即使我使用了options: .refreshCached,图像视图中的图像也不会更新。更新图像后,URL保持不变。我可以直接在缓存中更改此URL的图像吗?我用谷歌搜索了这个问题,我发现我不能直接在缓存中修改它。如果我不能为指定URL直接更改缓存中的图像,是否可以清除特定键(URL)的缓存值?
self.imgView.sd_setImage(with: url, placeholderImage: #imageLiteral(resourceName: "Timg"), options: .refreshCached, completed: { (image: UIImage?, error: Error?, cacheType: SDImageCacheType, imageURL: URL?) in
if image != nil{
self.imgView.contentMode = .scaleAspectFill
}
})发布于 2017-03-28 14:46:26
看起来这个问题已经在SDWebImage的官方GitHub页面上提出了。显然,答案表明[[SDImageCache sharedImageCache] removeImageForKey:image_url fromDisk:YES];在清除图像方面做得不够公平。
建议答案是
[[SDImageCache sharedImageCache] clearMemory];
[[SDImageCache sharedImageCache] cleanDisk];现在,您是否需要这两个语句取决于您如何配置SDImageCache。
它们是什么意思?
SDWebImage广泛地缓存图像,它将缓存的副本保存在内存和HardDisk中。当一个图像被请求时,它首先命中RAM缓存以找到该图像,如果找不到,则命中磁盘缓存。并从磁盘高速缓存中加载RAM高速缓存。
因此,简单地从磁盘清除仍然会将图像留在磁盘缓存中,并且当请求图像时,它不是从web下载,而是从磁盘加载,并在RAM中保留一个副本以供将来使用。因此,它否定了从缓存中删除图像的想法。
我知道这不是你特别想要的答案,但不幸的是,我不知道从SDImageCache中删除特定的图像。
发布于 2017-03-28 13:46:14
[SDImageCache sharedImageCache removeImageForKey:image_url fromDisk:是];
https://stackoverflow.com/questions/43061334
复制相似问题