Невозможно ли использовать "Анализ" с быстрым?
Ранее с кодом objective-c я мог "анализировать" - CMD + Shift + B и Xcode предупредили бы меня обо всех видах проступков с моей стороны.
Кажется, что с Свифт я не могу ошибаться! Никаких предупреждений! Но, очевидно, в моем коде есть утечка памяти.
Есть ли какая-то настройка, которую я должен включить, чтобы заставить Swift правильно анализировать мой код? (Мне известно, что я должен использовать профилировщик и тест на самом устройстве, что я и делаю, но мне интересно, почему "Анализ" ничего не делает.
Ответы
Ответ 1
К сожалению нет. Даже многие версии позже, последняя версия XCode (6.4) по-прежнему не может выполнять Swift-анализ. Параметр "Анализ" работает только для файлов Objective C в вашем проекте.
Пусть надеется, что следующая версия будет иметь его, а также возможности рефакторинга, которые также по-прежнему ограничены кодом Objective C.
Ответ 2
К этому моменту (Xcode 8.3.x) Анализ статического кода пропускает быстрый код. Некоторые предупреждения Swift охватывают некоторые проблемы, ранее обнаруженные анализатором.
Также предстоящий Xcode 9 (представленный в WWDC 2017) не сообщает об изменениях в этом направлении.
Большинство проблем, обнаруженных анализатором кода в Obj-C, по большей части предотвращено на языке Swift. Программные потоки, приводящие к потенциальным сбоям (доступ к нулевым указателям, оставление оборванных указателей или доступ к выпущенным блокам памяти) вряд ли возможны в Swift. Быстрая сильная типизация, интенсивное использование опций, требование полностью охватить протоколы и переключение на перечисления и т.д. Удалить еще одну группу проблем, ранее обнаруженную анализатором.
Анализатор быстрых кодов должен будет перейти на другой уровень - анализировать программу LOGIC, что в два раза сложнее и теоретически невозможно сделать полностью.
Итак - хотя я очень взволнован, чтобы думать о будущем Xcode Analyzer, я бы не задерживал дыхание, ожидая его
Ответ 3
Update:
По мере того, как все больше и больше людей голосуют за мой пост, просто небольшое обновление с моей стороны. Кажется, что действительно яблоко просто разрешило нажимать опцию "Анализ", но в фоновом режиме ничего не делает (состояние для 2016.04.21, хотя я не работаю на iOS на данный момент и, вероятно, у меня нет последней версии Xcode).
ниже моего исходного сообщения:
Только для следующих читателей этой статьи. В этот момент Xcode 7 уже может анализировать также проекты Swift. Рефакторинг все еще не работает.
BR,
Дарек