Ошибка разрешения защиты Swift: инициализатор для условного связывания должен иметь необязательный тип, а не '[String: String]' в swift? - PullRequest
0 голосов
/ 21 мая 2018

Я получаю следующую ошибку в строке кода ниже.Мое приложение аварийно завершает работу, когда значение равно nil / empty, поэтому я пытаюсь защитить развертывание.

Ошибка: Инициализатор для условного связывания должен иметь необязательный тип, а не '[String: String] '

guard let savedByUsers = venue.childSnapshot(forPath: "bookmarkedByUsers").value as! [String : String] else { return }

1 Ответ

0 голосов
/ 21 мая 2018

изменяется на:

guard let savedByUsers: [String: String] = venue.childSnapshot(forPath: "bookmarkedByUsers").value as? [String: String] else {
    return
}

as! вызывает развертывание и вызывает исключение, когда значение равно nil.Использование as? позволит избежать этого и перейти к предложению else.

...