来自 url 的图像数据在展开后为零

data of image from url is nil after unwrapping

我正在使用 Swift 4 并尝试从我的服务器获取图像。在终端中使用 ipconfig,我知道我的本地主机的 ip 是 10.43.229.215。 下面的代码是检索图像数据并将其变成UIImage:

func GetImage(url:String) {
        let image = String(localIP + url).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
        let url = URL(string: image)
        print(image)
        URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
            if error != nil {
                print("Client error!")
                return
            }
            guard let data = data else {
                print("Error: did not receive data")
                return
            }
            DispatchQueue.main.async {
                self.LensImageView.image = UIImage(data: data)
            }
        }).resume()
    }

我不明白的是,如果我 copy/paste 字符串到我的浏览器, image 字符串确实显示了我想要的图像 (http://10.43.229.215:3000/lensPic/%E5%A4%AA%E5%A6%83%E7%B3%96%E6%9D%8F.png) 但是,错误出现在 self.LensImageView.image = UIImage(data: data) 行,表示 Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value。 我真的很困惑:

  1. 如果已经有guard let方法,数据怎么会是nil
  2. 为什么我可以通过浏览器显示图像,为什么数据为零?

非常感谢任何帮助!

问题在于对什么是零做出了错误的假设。它与图像或数据无关。 nil的是self.LensImageView,出口属性。