swift firestore无法检查文档值是否为零
我的云firestore数据库中有以下数据结构: 在我的数据解析方法中,我尝试以下操作:swift firestore无法检查文档值是否为零,swift,google-cloud-firestore,Swift,Google Cloud Firestore,我的云firestore数据库中有以下数据结构: 在我的数据解析方法中,我尝试以下操作: if document.get("decisions") == nil{ object.decisions = document.get("decisions") as! [String: String] } 结果是应用程序崩溃了,因为my if子句允许获取数据,即使“decisions”为null
if document.get("decisions") == nil{
object.decisions = document.get("decisions") as! [String: String]
}
结果是应用程序崩溃了,因为my if子句允许获取数据,即使“decisions”为null
if document.get("decisions") != nil{
object.decisions = document.get("decisions") as! [String: String]
}
我想说的是,您最好进行一次安全检查,并将类型如下:
if let decisions = document.get("decisions") as? [String: String] {
object.decisions = decisions
}
您可以这样做,将null值转换为nil,并且不会导致应用程序崩溃
func nullToNil(value : AnyObject?) -> AnyObject? {
if value is NSNull {
return nil
} else {
return value
}
}
object.decisions = nullToNil(dict["decisions"])
或者你可以使用
object.decisions = document.get("decisions") as? [String: String]
强制铸造是危险的。应用程序可能仍会崩溃。感谢您的建议。你可以通过编辑来优化我的答案。你的答案和问题是一样的,不是吗?不。我只是更改了条件运算符。啊,我的错…!:'D无论如何,您将在Swift中使用可选的展开。在这里,您将获取两次“决策”。您好,您可以使用if-let或guard-let。