2016-01-21 36 views
1

我有字典字段canServeInvalid如何检查字典中的值?

我知道里面的值是真的。我证明这一点通过打印到控制台print(marker.userData["canServeInvalid"])返回

Optional(true) 

但是如果我检查它的价值这样

if marker.userData["canServeInvalid"] != true { 

     self.window?.canServeInvalid.hidden = true 
     print("preved") 

    } 

preved印刷,但我知道里面有真实的。

我在做什么错?

回答

0

问题是你正在试图比较Optional(true)true

你应该尝试在我的情况下,使用if letguard

//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") 
      } 
     } 
    } 
+0

总有一些东西里面解开一个可选的 - 真或假,它不能为空 –

+0

@Alexeyk默认情况下,字典中的值始终是可选的:) – Breek

+0

您正确地使用默认值,这是主要问题。你的代码不工作,xcode试图改变“if value {”为“if value!= nil {” –

相关问题