我的图片中有空的 URL字符串。我将 URL字符串图片保留在 firestore 中。但是有时会发生无图像的情况,我需要检查并返回空图像。
加载视图时,出现错误nil
。因为我在 firestore 中的变量为空。
这是我的代码:
guard let dataLogoImage = try? Data(contentsOf: URL(string: self.hall!.studioHallLogo)!) else { return }
然后我将dataLogoImage
应用于变量tempLogoImage
。
self.tempLogoImage = UIImage(data: dataLogoImage)
如何检查Data
或空网址字符串,并避免使用nil
?
答案 0 :(得分:1)
大卫是对的。因此,这里是URLSession.dataTask
用法的示例。这应该对您有用。
if let urlString = self.hall?.studioHallLogo,
let url = URL(string: urlString) {
let task = URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else { return }
// execute on main thread
DispatchQueue.main.async {
self.tempLogoImage = UIImage(data: data)
}
}
task.resume()
}
如您所见,我们正在安全地展开可选内容,例如self.hall?.studioHallLogo
,并创建URL
对象。 :)很快,您将需要一个库来更好地处理图像并进行缓存。我想建议:翠鸟
我希望这会有所帮助。祝你好运。