Все объяснения утверждений Свифта Я могу найти объяснение, что assert*
выбрасывается с -O
, но precondition*
сохранены, если не установлено -Ounchecked
.Какие утверждения сохраняются в режиме оптимизации всего модуля?
Однако у нас есть whole-module optimization-wmo
в качестве нового значения по умолчанию для релизов.
Есть precondition*
Утверждения сохраняются, когда включена оптимизация всего модуля?
https://developer.apple.com/reference/swift/1541112-assert и https://developer.apple.com/reference/swift/1540960- список предварительных условий точно, когда условие проверено или нет. Я не думаю, что оптимизация целых модулей имеет значение, но вы можете легко протестировать ее самостоятельно, добавив условие сбоя и запустив программу. –
Я не знаю о AppCode, но в настройках сборки Xcode у вас есть «-O-модуль-модуль-оптимизация». Таким образом, это разные варианты, и я бы предположил, что документация assert/precondition по-прежнему верна. –
@MartinR Да, настройка в AppCode меня путала. [FWIW] (https://youtrack.jetbrains.com/issue/OC-14836). – Raphael