Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何检查字典中的值?_Swift_Dictionary - Fatal编程技术网

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:)在这种情况下,您可以执行两次展开以获取您的值。