为可选变量赋值
Assigning a value to an optional variable
要设置字典值,我的做法如下。
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"
简而言之,有什么方法可以给可选变量赋值吗?
我认为你应该更新你的代码,不要在你的 viewcontroller 中使用直接字典。在模型中设置可选变量。当你使用这些值时,将它与条件检查一起使用,比如 if let value = somethingOptional{}
或者在你的 API 调用函数中使用 guard 这样当你从 API
中得到空值时它永远不会更新或影响任何视图
阅读评论后,下面的解决方案可能就是您要找的。
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!
}
要设置字典值,我的做法如下。
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"
简而言之,有什么方法可以给可选变量赋值吗?
我认为你应该更新你的代码,不要在你的 viewcontroller 中使用直接字典。在模型中设置可选变量。当你使用这些值时,将它与条件检查一起使用,比如 if let value = somethingOptional{}
或者在你的 API 调用函数中使用 guard 这样当你从 API
中得到空值时它永远不会更新或影响任何视图阅读评论后,下面的解决方案可能就是您要找的。
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!
}