当我检查 url 字符串图像时得到一个 nil

Get a nil when I check url string image

我的图像中有空 url 字符串。我将 url 字符串 图像保存在 firestore 中。但有时会出现无图需要检查return空图

加载视图时出现错误 nil。因为我在firestore中的变量是空的。

这是我的代码:

guard let dataLogoImage = try? Data(contentsOf: URL(string: self.hall!.studioHallLogo)!) else { return }

然后我将 dataLogoImage 应用于变量 tempLogoImage

self.tempLogoImage = UIImage(data: dataLogoImage)

如何检查 Data 空 url 字符串 并避免 nil?

大卫是对的。所以这是 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 对象。 :) 很快你就会需要一个库来更好地处理图像加载和缓存。我很乐意建议:Kingfisher

希望对您有所帮助。祝你好运。