Отключить неиспользуемые предупреждения переменной Xcode при наборе текста

Я до смерти заболел плодовитым использованием Xcode живых предупреждений о "неиспользуемых переменных", пока я печатаю. Я продолжаю думать, что у меня есть ошибка в моем синтаксисе, остановить то, что я делаю, проверить предупреждение, только чтобы увидеть это предупреждение о неиспользованной переменной.

enter image description here

Конечно, это не используется, я просто набрал его!

Я не против предупреждений о неиспользуемых переменных во время компиляции, они очень полезны, но я ненавижу живые предупреждения, поскольку я печатаю код.

Можно ли каким-то образом отключить это предупреждение везде, для всего приложения или для всего проекта?

Ответ 1

Похоже, что в настоящее время мы не можем подавлять конкретные предупреждения тем способом #pragma clang diagnostic ..., который можно использовать для obj-C. См. следующий поток


Можно отключить все интерактивные предупреждения по всему миру, отключив Показать живые проблемы, от Xcode → Предпочтения: вкладка Общие. Это, однако, сверх отключения всех живых предупреждений, также отключает живые ошибки, поэтому я предполагаю, что вы не захотите прибегать.


[Предупреждения сборки] Вы можете отключить пользовательские предупреждения сборки в масштабе всего проекта следующим образом:

  • Выберите проект в навигаторе и выберите вкладку Настройки сборки. Найдите Apple LLVM 7.0 - Предупреждения - Все языки и отключите предупреждения для Неиспользуемые значения и Неиспользуемые переменные.

введите описание изображения здесь

Ответ 2

В моей версии (Xcode 10.2.1) кажется, что отключение живых предупреждений только отключает предупреждения, а не все ошибки, как говорили другие. Итак, я думаю, что этот точный ответ достаточно хорошо подходит для оригинального поста:

Xcode > Preferences > General > Issues: [x] Show live issues

Снимите флажок " Show live issues ". Нет больше постоянных предупреждений при вводе нового кода.

Ответ 3

@warn_unused_result - поведение по умолчанию с Xcode 10 (swift 4.2). Предупреждения "Неиспользуемые значения" и "Неиспользуемые переменные" также включены по умолчанию. Это не очень хорошая идея, чтобы отключить их, и этот ответ показывает, почему. Для ваших собственных или переопределенных функций вы можете использовать директиву @discardableResult в объявлении, чтобы подавить эти предупреждения следующим образом:

suppressing Unused Values warning with discardableResult directive

Обратите внимание, что doSubmission() не генерирует никаких предупреждений.

На самом деле это используется в некоторых системных API, например: если вы пишете

navigationController?.popToRootViewController(animated: true)

вместо

_ = navigationController?.popToRootViewController(animated: true)

вы не получите предупреждения за игнорирование возвращенного результата.

Использование _ = funcWithResultWeDoNotCareFor() является наилучшей практикой ИМХО.

Кстати, это все работает для проекта. На игровой площадке вы не получите предупреждения "Неиспользуемые значения" и "Неиспользуемые переменные", несмотря ни на что.