Как очистить все кэшированные изображения, загруженные из 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()