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