为什么我的完成处理程序遇到问题,如何解决此问题?
func loadImageusingCacheWithUrlString(urlString: String) {
self.image = nil
if let cachedImage = imageCache.object(forKey: urlString as AnyObject) as? UIImage {
self.image = cachedImage
return
}
let url = NSURL(string : urlString)
URLSession.shared.dataTask(with: url!,
completionHandler: { (data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async(execute: {
if let currImage = UIImage(data: data) {
imageCache.setObject(currImage, forKey: urlString)
self.image = currImage
}
//cell.imageView?.image = UIImage(data: data)
})
}).resume()
}
最佳答案
用这个
let url = URL(string : urlString)
另外,您可能会收到错误消息“可选类型'数据的值?'尚未展开”,因此您应输入:
if let currImage = UIImage(data: data!) {
imageCache.setObject(currImage, forKey: urlString)
self.image = currImage
}