У меня есть ошибка при развертывании необязательного IBOutlet (поток 1: фатальная ошибка: неожиданно обнаружен ноль при развертывании необязательного значения) - PullRequest
0 голосов
/ 17 января 2019

Я знаю, почему возникает эта проблема, но я не знаю, как ее исправить. Я использовал функцию переопределения, чтобы добавить в метод становленияFirstResponder (который делает именно то, что он говорит) из класса ViewController к моей IBOutlet autoKeyboard. Как я могу получить это, чтобы не иметь нулевой ценности? Должен ли я дать свой IBOutlet значение вместо «!»?

Что это делает: заставляет клавиатуру всплывать автоматически вместо нажатия на текстовое поле (вроде как при поиске в центре внимания на iOS)

Дайте мне знать, если мне нужно отправить больше информации!

override func becomeFirstResponder() -> Bool {

autoKeyboard.becomeFirstResponder()
return true

}

Ошибка, которую я получил:

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

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Я сделал IBObject autoKeyboard необязательным и, таким образом, изменил строку кода следующим образом:

    override func viewDidAppear(_ animated: Bool) {
    autoKeyboard?.becomeFirstResponder()
}

Теперь работает!

0 голосов
/ 17 января 2019

Причина, по которой вы получаете значение nil, заключается в том, что ваш nib еще не был инициализирован, поэтому ваше текстовое поле равно nil. Я полагаю, что вы вызываете свой intoFirstResponder для своего текстового поля слишком рано в жизненном цикле контроллера представления.

...