我在下面的代码行中收到以下错误。当值为零/空时,我的应用程序崩溃,因此我为什么要保护解包。
错误: 条件绑定的初始化程序必须具有可选类型,而不是' [String:String]'
guard let savedByUsers = venue.childSnapshot(forPath: "bookmarkedByUsers").value as! [String : String] else { return }
答案 0 :(得分:1)
更改为:
guard let savedByUsers: [String: String] = venue.childSnapshot(forPath: "bookmarkedByUsers").value as? [String: String] else {
return
}
as!
强制解包并在值为nil
时导致异常。使用as?
将避免这种情况并跳转到else
子句。