Развертывание необязательного nil при получении значения из словаря моментальных снимков Firebase в Swift 4.0 - PullRequest
0 голосов
/ 17 сентября 2018

У меня проблемы с развертыванием необязательного nil при получении значения из словаря моментальных снимков firebase в swift 4.0

Вот мой код

Database.database().reference().child("questionPosts").queryOrderedByKey().observe(.childAdded) { (snapshot) in
            if let dict = snapshot.value as? NSDictionary {
                //var questionName = dict["name"] as! String
                //var created_by = dict["email"] as! String
                let questionTitle = dict["name"] as? String
                let created_by = dict["email"] as? String

                let question = Question(questionName: questionTitle!, created_by: created_by!)

                self.questions.append(question)



                print(self.questions.count)

            }
        }

И когда я запускаю это, я получаю сообщение об ошибке:

Тема 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании Необязательное значение

Я также пишу этот код в swift 4.0 в Xcode 9.0

Может ли кто-нибудь помочь, пожалуйста, я бился головой об этом в течение недель

так что помощь будет очень признательна

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Если вам нужно, чтобы эти 2 значения продолжали выполняться, я бы предложил использовать guard, тогда вы сможете держать их в строке и избегать отступов для удобства чтения.

defer { print(self.questions.count) }

guard let dict = snapshot.value as? NSDictionary else { return }
guard let questionTitle = dict["name"] as? String else { return }
guard let created_by = dict["email"] as? String else { return }

let question = Question(questionName: questionTitle, created_by: created_by)
self.questions.append(question)
0 голосов
/ 17 сентября 2018

Просто замените приведенный ниже код своим кодом.

let questionTitle = dict["name"] as? String ?? ""
let created_by = dict["email"] as? String ?? ""

Это будет работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...