Подтвердить что ты не робот

Как отключить "Добавить явные фигурные скобки, чтобы не болтаться иначе" в новом xCode?

Обновлен до последнего xCode 4.41, и теперь я получаю массу предупреждений о совершенно точном коде (см. строку темы). Эти предупреждения находятся в стороннем исходном коде, который я использую, мне не хочется входить в этот код и редактировать (мне нужно будет сделать это снова при следующем обновлении этого кода), поэтому я бы просто отключил это особое предупреждение.

Кстати, я использую xcode4.41, но, видимо, у меня недостаточно хорошей репутации, чтобы создать новый тег (интересно, хотя 4.41 еще не там)

4b9b3361

Ответ 1

Это сработало для меня:

#ifdef __llvm__
#pragma GCC diagnostic ignored "-Wdangling-else"
#endif

Ответ 2

Это не ошибка. Apple LLVM предупреждает вас в случаях, когда у вас есть вложенный блок if-else if-else. Посмотрите на код ниже:

if (Condition1)
    if (Condition2)
        return Statement2;
    else if (Condition3)
        Statement3;
    else
        Statement4;

Посмотрев на приведенный выше код, его смущает для синтаксического анализатора понимание того, с чем связано "если" "else"? Помните, что для него необязательно иметь else для if else, поэтому очень вероятно, что оператор else может быть связан с if (Condition1), а не if (Condition2).

Компилятор Apple llvm достаточно умен, чтобы не делать этого глупо, но предупреждает пользователя пересмотреть код, чтобы убедиться, что пользователь не хочет этого другим способом.

Как правило, предупреждение можно разрешить, добавив фигурные скобки ко всем высшим уровням, если утверждения. В приведенном выше примере предупреждение исчезнет, ​​добавив фигурные скобки к if (Condition1). Проверьте более читаемый (предупреждающий код) ниже:

if (Condition1)
{
    if (Condition2)
        return Statement2;
    else if (Condition3)
        Statement3;
    else
        Statement4;
}

Ответ 3

OK --- есть опция под компилятором Apple LLVM 4.0 - Предупреждения, называемые

Отсутствующие скобки и скобки

Установка этого параметра на NO избавится от этого предупреждения.

К сожалению, похоже, что нет способа просто избавиться от предупреждения о фигурных скобках.

Apple, вы начинаете накладывать слишком много на то, как я развиваюсь. Стоп!

Ответ 4

"Другое", предназначенное для "другого", если "действительно" - очень трудно найти ошибку! Я знаю из личного опыта. Таким образом, предупреждение "болтаться еще" может быть действительно полезным.