Ios 对成员数据任务的引用不明确(使用:completionHandler:)
为什么我的完成处理程序出现问题,我如何解决这个问题Ios 对成员数据任务的引用不明确(使用:completionHandler:),ios,swift3,nsurlsession,Ios,Swift3,Nsurlsession,为什么我的完成处理程序出现问题,我如何解决这个问题 func loadImageusingCacheWithUrlString(urlString: String) { self.image = nil if let cachedImage = imageCache.object(forKey: urlString as AnyObject) as? UIImage { self.image = cachedImage return }
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
}
它因使用
NSURL
而混淆。现在就使用URL
。