SDWebImage清除caching

我正在显示从网站下载的图标列表,并在表格视图中显示文字。 图标可以在服务器端进行更改,只要新图标可用,我需要将其replace。 我尝试使用下面的代码:

[imgView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"table_avatar_icon"] options:SDWebImageCacheMemoryOnly]; 

并调用[[SDImageCache sharedImageCache] clearMemory]; 在我的刷新callback,但它不清除caching的内容。 更重要的是,即使我closures了应用程序并再次打开,图像仍然存在。

我发现只有一种方法来清除caching,它是通过调用[[SDImageCache sharedImageCache] clearDisk]; 。 这只有在我closures并重新打开应用程序后才有效。

如何强制SDWebImage不使用磁盘caching?

 SDImageCache *imageCache = [SDImageCache sharedImageCache]; [imageCache clearMemory]; [imageCache clearDisk]; 

不要忘记把这些代码放在你的didReceiveMemoryWarning

find问题的来源。 我似乎被SDImageCache使用的Singleton模式所欺骗了。 用于UIImageView的扩展caching由具有SDWebImageManager实例variables的SDImageCache 。 如果你想清除caching的扩展名,你必须调用它的imageCache的方法,如clearDisk和clearMemory。

除了SDImageCache方法,我强烈build议你检查你的图片url。 在我的情况下,我尝试了imageCache的每一个方法和内存问题仍然继续。 崩溃主要发生在iPhone 4s上,因为硬件无法处理它。

主要问题是url符号编码!

例如,请查看这些url:第一个url是使用“&amp”,第二个url不是。 由于&符号我的JSON库无法读取宽度和宽度值得到高得多,那应该是。 这就是为什么我有记忆问题。

1)/select.php?imageid=101961221 “&amp ;; width = 100 ”&amp ;; isWatermarked = true

2)/select.phpimageid=101961221&width=100&isWatermarked=true

此外,SDWebImage库最新版本包括UIImageView+WebCache.h类,它很好地处理caching问题。