2016-02-15 1 views
0

Я не могу удалить кеш изображения, которые кэшируются с помощью SDWebImage. Я использую «UIImageView+UIActivityIndicatorForSDWebImage.h» Я кэширую изображение с помощью этого кода.Удалить кеш изображения из SDWebImage

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

Теперь когда-нибудь я хочу удалить кэш изображения, потому что когда-то тот же URL-адрес даст мне другое изображение по серверу.

Я удаляю кеш изображения с помощью этого кода.

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

Но дать это я ошибку как:

*** Нагрузочного приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '- [__ NSDictionaryM UTF8String]: непризнанного селектор отправляется например 0x7fcb01f9bf70'

Как удалить кеш?

+0

Я думаю, что self.imgArray представляет собой массив словаря, а не массив строк. – Varun

+0

да, я решил. –

ответ

1

Метод - (void)removeImageForKey:(NSString *)key fromDisk:(BOOL)fromDisk в SDWebImage принимает NSString в качестве аргумента.

В приведенном выше коде это выглядит так: [self.imgArray objectAtIndex:indexForDelete] дает вам объект NSDictionary и, следовательно, сбой.

Для этого вам понадобится нечто подобное;

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

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