【发布时间】:2018-12-23 11:23:48
【问题描述】:
我有 UIImageView,如果存在我想下载缓存中的图像,我使用了扩展 func。
我有这段代码,但不工作:
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()
}
}
【问题讨论】:
-
请解释一下不起作用。你的代码没有编译?或者导致运行时错误?如果你得到错误,在哪一行和什么样的消息?或者它运行没有任何问题,但你得到了意想不到的结果?解释所有这些事情。
标签: swift image url caching uiimageview