Swift guard让错误:条件绑定的初始化程序必须具有Optional类型,而不是' [String:String]'在快速?

时间:2018-05-21 03:18:33

标签: swift conditional

我在下面的代码行中收到以下错误。当值为零/空时,我的应用程序崩溃,因此我为什么要保护解包。

错误: 条件绑定的初始化程序必须具有可选类型,而不是' [String:String]'

guard let savedByUsers = venue.childSnapshot(forPath: "bookmarkedByUsers").value as! [String : String] else { return }

1 个答案:

答案 0 :(得分:1)

更改为:

guard let savedByUsers: [String: String] = venue.childSnapshot(forPath: "bookmarkedByUsers").value as? [String: String] else {
    return
}

as!强制解包并在值为nil时导致异常。使用as?将避免这种情况并跳转到else子句。