当我检查网址字符串图像时得到零

时间:2019-01-16 14:56:36

标签: ios swift image guard

我的图片中有空的 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

1 个答案:

答案 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对象。 :)很快,您将需要一个库来更好地处理图像并进行缓存。我想建议:翠鸟

我希望这会有所帮助。祝你好运。