Swift 如何检查字典中的值?
我有带字段的字典Swift 如何检查字典中的值?,swift,dictionary,Swift,Dictionary,我有带字段的字典canServeInvalid 我知道内在的价值是真实的。我通过打印控制台print(marker.userData[“canServeInvalid”])来证明这一点,它返回 Optional(true) 但是如果我像这样检查它的值 if marker.userData["canServeInvalid"] != true { self.window?.canServeInvalid.hidden = true print("prev
canServeInvalid
我知道内在的价值是真实的。我通过打印控制台print(marker.userData[“canServeInvalid”])
来证明这一点,它返回
Optional(true)
但是如果我像这样检查它的值
if marker.userData["canServeInvalid"] != true {
self.window?.canServeInvalid.hidden = true
print("preved")
}
我得到了preved
的打印,但我知道里面是真的
我做错了什么?问题是您试图比较
可选(true)
和true
如果让或保护
//if your userData is optional also
if let userData = marker.userData {
if let value = userData["canServeInvalid"] {
if value {
//do your stuff here
} else {
self.window?.canServeInvalid.hidden = true
print("preved")
}
}
}
问题是您试图比较
可选(true)
和true
如果让或保护
//if your userData is optional also
if let userData = marker.userData {
if let value = userData["canServeInvalid"] {
if value {
//do your stuff here
} else {
self.window?.canServeInvalid.hidden = true
print("preved")
}
}
}
在我的情况下,总是有一些内在的东西-真的或假的,它不可能是empty@Alexeyk默认情况下,字典中的值始终是可选的:)您对默认值的看法正确这是主要问题。代码无法工作,xcode试图将“if value{”更改为“if value!=nil{”@Alexeyk我不确定你的标记的类型。userData:)在这个原因中,你可以做两次“展开”来获取你的值。在我的情况下,里面总是有一些东西-真的或假的,这是不可能的empty@Alexeyk默认情况下,字典中的值始终是可选的:)您对默认值的看法正确这是主要问题尝试将“if value{”更改为“if value!=nil{@Alexeyk我不确定您的标记的类型。userData:)在这种情况下,您可以执行两次展开以获取您的值。