Невозможно ли использовать "Анализ" с быстрым?

Ранее с кодом 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, Дарек