我在一个表视图中显示了一个从web下载的图标列表,其中包含文本。图标可以在服务器端更改,我需要尽快更换他们的新图标是可用的。我尝试使用以下代码:
[imgView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"table_avatar_icon"] options:SDWebImageCacheMemoryOnly];并在我的刷新回调中调用[[SDImageCache sharedImageCache] clearMemory];,但它不清除缓存的内容。更重要的是,即使我关闭应用程序并再次打开它,图像仍然在那里。
我发现只有一种方法可以清除缓存,那就是调用[[SDImageCache sharedImageCache] clearDisk];。它只有在我关闭并重新打开应用程序后才起作用。
如何强制SDWebImage不使用磁盘缓存?
发布于 2013-04-29 19:23:33
SDImageCache *imageCache = [SDImageCache sharedImageCache];
[imageCache clearMemory];
[imageCache clearDisk];别忘了把这几行代码也放到你的didReceiveMemoryWarning中。
发布于 2012-12-14 23:31:12
已找到问题的来源。似乎我被SDImageCache中使用的单例模式欺骗了。在UIImageView上使用的扩展缓存由SDWebImageManager控制,它有一个实例变量SDImageCache。如果你想为扩展清除缓存,你必须调用它的imageCache的方法,比如clearDisk和clearMemory。
发布于 2020-06-10 18:54:36
只有以下代码对我有效: Swift 5.0,Xcode11,iOS 13,SDWebImage pod 5.0
SDWebImageManager.shared.imageCache.clear(with: .all) {
print("deleted all")
}你可以选择像SDImageCacheType.disk, SDImageCacheType.memory, SDImageCacheType.disk这样的选项
另外,如果您想从缓存中删除特定的图像,请使用以下命令:
SDWebImageManager.shared.imageCache.removeImage(forKey: "url of image", cacheType: .all)https://stackoverflow.com/questions/13865537
复制相似问题