Swift Логическое значение <недействительный>
Приложенный скриншот говорит все: у меня есть действительный истинный Bool, я отрицаю его с помощью оператора bang, и (Xcode говорит мне) У меня есть недопустимое значение.
Похоже, что это "недопустимое" значение ведет себя так, как если бы оно было ложным. Но действительно, wtf?
![введите описание изображения здесь]()
Ответы
Ответ 1
У меня была эта проблема в Xcode 8.3.1 и Swift 3.1 https://github.com/onmyway133/notes/issues/278
Я пробовал
- Очистить папку сборки и удалить папку с производными данными
- Удалить приложение
- Reset симулятор
- Перезапустить Xcode
- Перезагрузка Mac
Но не работает. Обходной путь -
let enabled = disable ? false : true
Ответ 2
Я не эксперт LLVM, но я бы не удивился этому поведению, если только оптимизация не установлена на Onone
, и в этом случае он должен был оставить ваш код в покое. В конце концов, промежуточная переменная просто просит оптимизировать.
Ответ 3
У вас такая же проблема, с правильным значением для добавления кода типа print(theBoolValue)
.
Но при использовании p
в быстрой командной строке. Или просто проверьте значение в стеке отладки, значение станет <invalid>(Oxfe)
.