SDWebImage清除缓存

Eug*_*ene 34 iphone objective-c ios sdwebimage

我正在显示从Web下载的图标列表,其中包含表格视图中的文本.可以在服务器端更改图标,我需要在新图标可用时立即更换它们.我尝试使用以下代码:

[imgView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"table_avatar_icon"] options:SDWebImageCacheMemoryOnly];
Run Code Online (Sandbox Code Playgroud)

并调用[[SDImageCache sharedImageCache] clearMemory];我的刷新回调,但它不会清除缓存的内容.更重要的是,即使我关闭应用程序并再次打开它,图像仍然存在.

我发现只有一种方法可以清除缓存,而是通过调用[[SDImageCache sharedImageCache] clearDisk];.这仅在我关闭并重新打开应用程序后才有效.

如何强制SDWebImage不使用磁盘缓存?

car*_*ich 113

SDImageCache *imageCache = [SDImageCache sharedImageCache];
[imageCache clearMemory];
[imageCache clearDisk];
Run Code Online (Sandbox Code Playgroud)

不要忘记将这些代码放在你的代码中didReceiveMemoryWarning.

  • 当发生内存警告时,当前版本的SDWebImage将自动清除内存缓存.无需执行此操作,尤其不需要清除磁盘缓存. (21认同)
  • https://github.com/rs/SDWebImage/blob/master/SDWebImage/SDImageCache.m#L65 (5认同)
  • 最新版本的更新:SDImageCache * imageCache = [SDImageCache sharedImageCache]; [imageCache clearMemory]; [imageCache clearDiskOnCompletion:^(){}]; (2认同)

Eug*_*ene 9

如果出现问题,请找到来源.似乎我被使用的Singleton模式欺骗了SDImageCache.通过UIImageView使用的扩展缓存由其SDWebImageManager实例变量控制SDImageCache.如果要清除扩展的缓存,则必须调用其imageCache方法,如clearDisk和clearMemory.

  • @SurajShinde对于`SDImageCache`没有这样的方法,当然它会崩溃.使用`[[[SDWebImageManager sharedManager] imageCache] clearDisk];`,`[[[SDWebImageManager sharedManager] imageCache] clearMemory];` (3认同)