SDWebImage wird häufig als Bildcache-Bibliothek verwendet. Ich denke, dass es viele Szenen gibt, die hauptsächlich die folgenden Methoden als Methoden verwenden, um den Cache zu leeren.
SDImageCache.sharedImageCache().clearMemory()
SDImageCache.sharedImageCache().clearDisk()
Wenn Sie jedoch den Cache für eine bestimmte UIImageView leeren möchten Das Leeren aller Caches nacheinander ist also teuer Ich habe versucht herauszufinden, wie der Cache einer bestimmten UIImageView geleert werden kann.
Dies kann mit der folgenden Methode erreicht werden.
SDImageCache.shared.removeImageFromDisk(forKey: String)
SDImageCache.shared.removeImageFromDisk(forKey: String)
Das Argument forKey
(cacheKey) scheint die in UIImageView festgelegte URL zu sein.
▼ Offizielles Dokument
The cache key is an application unique identifier for the image to cache. It is generally the absolute URL of the image.
Ich mache mir ein wenig Sorgen um "allgemein", aber lol (wahrscheinlich, weil Sie den Schlüssel beim Zwischenspeichern angeben können?) Ich konnte den Cache leeren, indem ich Folgendes implementierte.
if let cacheKey = uiimageView.sd_imageURL?.absoluteString {
SDImageCache.shared.removeImageFromDisk(forKey: cacheKey)
SDImageCache.shared.removeImageFromDisk(forKey: cacheKey)
}
Recommended Posts