Как очистить все кэшированные изображения, загруженные из SDWebImage?
У меня есть все изображения, загруженные в мое приложение через SDWebImage. Загрузка и кеширование отлично работают, но я хотел сделать кнопку, которая может очистить все кэшированные изображения во всем приложении.
У меня есть кнопка "Очистить кеш" в качестве UIButton на одном из моих представлений на панели вкладок. Как я могу это сделать, когда эта кнопка нажата, все кэшированные изображения удаляются и их необходимо повторно загрузить?
Использование Swift.
Спасибо!
Ответы
Ответ 1
Если вы хотите полностью очистить кеш, выполните следующие действия:
Obj-C:
- (IBAction)clearCache:(id)sender {
[[SDImageCache sharedImageCache]clearMemory];
[[SDImageCache sharedImageCache]clearDisk];
}
Swift:
import SDWebImage
@IBAction func clearCache(sender: UIButton) {
SDImageCache.sharedImageCache().clearMemory()
SDImageCache.sharedImageCache().clearDisk()
}
Swift 3.0
import SDWebImage
@IBAction func clearCache(sender: UIButton) {
SDImageCache.shared().clearMemory()
SDImageCache.shared().clearDisk()
}
Ответ 2
Попробуйте следующее:
@IBAction func actClearCache(sender:AnyObject) {
let objCache = SDImageCache.sharedImageCache()
objCache.clearMemory()
objCache.cleanDisk()
}
Ответ 3
Swift 4.2, Xcode 10
pod 'SDWebImage', '5.0.0-beta3'
import SDWebImage
@IBAction func ClearCacheButtonClick(_ sender: UIButton) {
SDImageCache.shared.clearMemory()
SDImageCache.shared.clearDisk()
}
Ответ 4
ClearCache KingFisher, SDwebImage, URlsession
// KingFisher
let cache = KingfisherManager.shared.cache
cache.clearMemoryCache()
cache.clearDiskCache()
cache.cleanExpiredDiskCache()
//SDWebImage
SDImageCache.shared().clearMemory()
SDImageCache.shared().clearDisk()
// Urlseesion Cache
URLCache.shared.removeAllCachedResponses()