gpt4 book ai didi

Swift 4 - 如何使用缓存加载图像?

转载 作者:行者123 更新时间:2023-11-28 07:44:57 25 4
gpt4 key购买 nike

我有 UIImageView,我想下载缓存中的图像(如果存在),我使用了扩展功能。

我有此代码但无法正常工作:

extension UIImageView {
func loadImageUsingCache (_ urlString : String) {
let imageCache = NSCache<AnyObject, AnyObject>()
if let cachedImage = imageCache.object(forKey: urlString as AnyObject) {
self.image = cachedImage as? UIImage
return
}
let url = URL(string: urlString)
URLSession.shared.dataTask(with: url!) { (data, response, error) in
if data != nil {
if let image = UIImage(data: data!) {
imageCache.setObject(image, forKey: urlString as AnyObject)
DispatchQueue.main.async(execute: {
self.image = image
})
}
}
}.resume()
}
}

最佳答案

您正在为每个图像创建新的 NSCache 对象,而不是保留它。您应该创建对象变量而不是本地变量。在这种情况下,它不会在扩展中工作。您也可以尝试改用 URLCache.shared。

关于Swift 4 - 如何使用缓存加载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51352906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com