2016-08-05 2 views
2

Я работаю с Firebase 3.4.0 и уверен, выполнение этого кода:Object = ноль, но код все еще выполняется внутри, если заявление

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

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

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

} 

Я получаю имя пользователя из базы данных Firebase в реальном времени, а для этого пользователь, имя пользователя не указано. Когда код выполняется, две строки внутри оператора if выполняются, но печатная строка печатает «nil».

Моя firebase структура данных:

"users": { 

    "9Tjjbsj852816": { 

     "Email": "[email protected]" 

    } 
} 

Если я бегу, если заявление и объект отсутствует, почему код внутри, если оператор выполняет?

+1

Может ли значение, связанное с ключом «имя пользователя», быть строкой «nil»? – vacawama

+0

Проверьте структуру данных из Firebase, которую я добавил к моему вопросу. –

+0

Может быть значением строки является «" (т. Е. Пустая строка) против nil? – fullofsquirrels

ответ

0

Я понял это с помощью других! Вот обновленный оператор if. Я все еще не могу понять, почему Xcode видит String как ноль, но не AnyObject.

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

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

} 
Смежные вопросы