UIImage的图像URL不起作用

时间:2017-05-14 03:02:59

标签: ios swift url firebase uiimage

let url = URL(string: (pinsFIREBASE[marker.snippet!]?.imageURL)!)
let task = URLSession.shared.dataTask(with: url!) { data, response, error in
    guard let data = data, error == nil else { return }
    DispatchQueue.main.async() {
        self.postImage.image = UIImage(data: data)
    }
}

task.resume()

我有以下代码从firebase获取一个url,格式为http://i.imgur.com/nkomPpP.jpg,并且应该将该url转换为可放置在视图上的UIImage。但是,从firebase对象中提取文本时,解析图像URL似乎不起作用,因为我得到一个空视图。我做错了什么?

2 个答案:

答案 0 :(得分:2)

我知道为什么,你的代码有效。问题是你的图像链接。您的imageURL的HTTP类型。 iOS不喜欢HTTP类型请求,因为它不安全。

  • 计划A:尝试使用HTTPS类型图片链接,它可以正常工作。
  • 计划B:添加"应用传输安全设置"在项目信息中,并设置"允许 任意负荷"是"应用程序传输安全设置"字典。

我建议使用计划A,Apple希望iOSDev这样做。

答案 1 :(得分:0)

您需要在DispatchQueue.main.async()之后删除()。试试这个:

  let url = URL(string: (pinsFIREBASE[marker.snippet!]?.imageURL)!)
  let task = URLSession.shared.dataTask(with: url!) { data, response, error in
  guard let data = data, error == nil else { return }
  DispatchQueue.main.async {
    self.postImage.image = UIImage(data: data)
   }
 }

task.resume()