Object = nil,但代码仍在if语句

时间:2016-08-05 22:35:58

标签: ios swift xcode firebase firebase-realtime-database

我正在使用Firebase 3.4.0并执行此代码:

if snapshot.value!["username"] != nil {

        self.usernameTextField.text = "\(snapshot.value!["username"]!)"

        print("SNAPSHOT: \(snapshot.value!["username"])")

}

我从Firebase实时数据库中获取用户的用户名,并且对于此用户,没有给出用户名。当代码执行时,if语句中的两行会运行,但打印行会打印" nil"。

我的firebase数据结构:

"users": {

    "9Tjjbsj852816": {

        "Email": "test@test.com"

    }
}

如果我正在运行if语句且对象为nil,为什么if语句中的代码正在执行?

1 个答案:

答案 0 :(得分:0)

我在别人的帮助下想出来了!这是更新的if语句。我仍然无法弄清楚为什么Xcode将String视为nil而不是AnyObject。

if snapshot.value?["username"] as? String != nil {

    self.usernameTextField.text = "\(snapshot.value!["username"]!!)"

}