Выбор ответа Middle Опционалы обновлено
Implicitly unwrapped optional: где уместен
Вопрос
Где в iOS исторически оправдан String! / UILabel!?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Для @IBOutlet, которые заполняются после загрузки view. IUO это опционал, который компилятор распаковывает принудительно при обращении.
Варианты ответа
- Для
@IBOutlet, которые заполняются после загрузки viewправильный ответ - Для ответов сервера, где поле обычно приходит в JSON
- Для любого свойства, чтобы не писать
?при каждом обращении - Для параметров функций, чтобы можно было передать
nil
Разбор
IUO это опционал, который компилятор распаковывает принудительно при обращении. Он нужен там, где значение появляется после инициализации, но до первого использования, как аутлеты из storyboard. Для ответов сервера это прямой путь к крэшу: «обычно приходит» не гарантия. Использовать IUO «чтобы не писать ?» плохая практика, а в параметрах функций он бессмыслен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Разница между guard let и if let
Следующий вопрос
Задача на Swift: цепочка руководителей