从SDWebImage

时间:2016-02-15 09:24:24

标签: ios objective-c cocoa-touch caching sdwebimage

我无法删除SDWebImage缓存的图像缓存。 我正在使用“UIImageView+UIActivityIndicatorForSDWebImage.h” 我使用此代码缓存图像。

[cell.imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"image_icon.png"] usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

现在有时我想删除图片缓存,因为有时同一个网址会通过服务器给我另一张图片。

我正在使用此代码删除图像缓存。

[[SDImageCache sharedImageCache] removeImageForKey:[self.imgArray objectAtIndex:indexForDelete] fromDisk:YES];

但是给我的错误就像:

  

***因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSDictionaryM UTF8String]:   无法识别的选择器发送到实例0x7fcb01f9bf70'

如何删除缓存??

2 个答案:

答案 0 :(得分:1)

SDWebImage中的方法- (void)removeImageForKey:(NSString *)key fromDisk:(BOOL)fromDiskNSString作为参数。

在上面的代码中,[self.imgArray objectAtIndex:indexForDelete]看起来像NSDictionary对象,因此崩溃了。

所以你需要这样的东西;

NSDictionary *imageDictionary = [self.imgArray objectAtIndex:indexForDelete];
NSString *cacheKeyToDelete = [imageDictionary objectForKey:@"YourKeyForImageCacheKey"];

[[SDImageCache sharedImageCache] removeImageForKey:cacheKeyToDelete fromDisk:YES];

答案 1 :(得分:0)

迅速

SDImageCache.shared.removeImage(forKey: _imageURL?.description, withCompletion: nil)