【发布时间】:2017-02-14 08:19:54
【问题描述】:
我已通过 SDWebImage 将所有图像加载到我的应用程序中。下载和缓存效果很好,但是我想做一个按钮,可以清除整个应用程序中所有缓存的图像。
我的一个标签栏视图上有一个“清除缓存”按钮作为 UIButton。我怎样才能做到这一点,当点击此按钮时,所有缓存的图像都会被删除并需要重新下载?
使用 Swift。
谢谢!
【问题讨论】:
标签: ios swift caching sdwebimage
我已通过 SDWebImage 将所有图像加载到我的应用程序中。下载和缓存效果很好,但是我想做一个按钮,可以清除整个应用程序中所有缓存的图像。
我的一个标签栏视图上有一个“清除缓存”按钮作为 UIButton。我怎样才能做到这一点,当点击此按钮时,所有缓存的图像都会被删除并需要重新下载?
使用 Swift。
谢谢!
【问题讨论】:
标签: ios swift caching sdwebimage
如果要彻底清除缓存,请执行以下操作:
- (IBAction)clearCache:(id)sender {
[[SDImageCache sharedImageCache]clearMemory];
[[SDImageCache sharedImageCache]clearDisk];
}
SDImageCache.shared.clearMemory()
SDImageCache.shared.clearDisk()
@IBAction func clearCache(sender: UIButton) {
SDImageCache.shared().clearMemory()
SDImageCache.shared().clearDisk()
}
【讨论】:
func clearDisk(onCompletion completion: SDWebImageNoParamsBlock? = nil),所以onCompletion参数可以省略。
试试这个:
@IBAction func actClearCache(sender:AnyObject) {
let objCache = SDImageCache.sharedImageCache()
objCache.clearMemory()
objCache.cleanDisk()
}
【讨论】:
Swift 4.2,Xcode 10
pod 'SDWebImage', '5.0.0-beta3'
import SDWebImage
@IBAction func ClearCacheButtonClick(_ sender: UIButton) {
SDImageCache.shared.clearMemory()
SDImageCache.shared.clearDisk()
}
【讨论】:
从缓存中删除所有数据
SDImageCache.shared.clear(with: .all) {
print("Disk & memory data cleared")
}
仅从内存中删除数据
SDImageCache.shared.clear(with: .memory) {
print("Memory data cleared")
}
从磁盘中删除数据
SDImageCache.shared.clear(with: .disk) {
print("Disk data cleared")
}
【讨论】:
import SDWebImage
SDImageCache.shared.clearMemory()
SDImageCache.shared.clearDisk()
【讨论】: