为什么我的完成处理程序遇到问题,如何解决此问题?

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
}

10-07 19:49
查看更多