Выбор ответа Middle Ошибки обновлено
assert, precondition и fatalError
Вопрос
Что останется в релизной сборке (-O)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: precondition и fatalError. assert проверяется только в отладочной сборке (-Onone). precondition работает и в релизе (-O), исчезает лишь в -Ounchecked. fatalError срабатывает всегда.
Варианты ответа
preconditionиfatalErrorправильный ответ- Только
assert, остальные вырезаются - Все три проверки
- Ни одной: всё только в Debug
Разбор
assert проверяется только в отладочной сборке (-Onone). precondition работает и в релизе (-O), исчезает лишь в -Ounchecked. fatalError срабатывает всегда. Отсюда выбор: assert для внутренних проверок разработчика, precondition для нарушений контракта, которые опасно игнорировать в продакшене.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Ошибки»
- Сколько стоят ошибки в Swift
- Порядок выполнения defer
- Синтаксис do/try/catch
- Отмена задачи и ошибки
- Как объявить свою ошибку в Swift
- Конвертация между Result и throws
- Задача на Swift: калькулятор в обратной польской записи с ошибками
- Задача на Swift: валидация формы регистрации