我要像下面这样设置字典值。
var dic: [String:Any]?
dic = [String:Any]()
dic!["name"] = "my name"
dic!["email"] = "aaa@bbb.com"
dic!["nickname"] = "Grrrrrrrr"
我认为感叹号(!)是多余的。 也就是说,我想设置为不带“!”。
dic = [String:Any]()
dic["name"] = "my name"
dic["email"] = "aaa@bbb.com"
dic["nickname"] = "Grrrrrrrr"
有什么简而言之可以用来为可选变量设置值的方法吗?
答案 0 :(得分:2)
已阅读注释,下面的解决方案可能就是您想要的。
var dic = [String: Any]() //Empty dictionary
func processResultOfAlamofire(_ result: [String: Any]?) {
dic = result ?? [String: Any]()
}
如果Alamo的结果为nil
,则dic
将为空,而不是nil
。 ??
运算符可以写为:
if result == nil {
dic = [String: Any]()
} else {
dic = result!
}
答案 1 :(得分:1)
我认为您应该更新代码,不要在viewcontroller中使用直接字典。在模型中设置可选变量。并且当您使用这些值时,将其用于条件检查,例如,让值= somethingOptional {}
或在您的API调用函数中使用防护,因此如果您从API中获取值为null,则它将永远不会更新或影响任何视图