Как отменить устаревшее предупреждение в Xcode?

Есть ли #pragma для отмены предупреждения времени компиляции, например:

warning: 'ADBannerContentSizeIdentifier480x32' is deprecated (declared at /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/Frameworks/iAd.framework/Headers/ADBannerView.h:111)

Я должен поддерживать совместимость с устройствами iOS до версии 4.2:

NSString *iAdSize = (osVersion >= 4.2) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifier480x32;

Спасибо


person ohho    schedule 04.01.2011    source источник


Ответы (3)


Да, есть

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wno-deprecated-declarations"
//deprecated function
#pragma clang diagnostic pop

Если вы когда-нибудь задумывались, каков правильный синтаксис для определенной ошибки, просто найдите его в Xcode, а затем посмотрите быструю справку

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

person odyth    schedule 13.09.2013
comment
Мне пришлось использовать #pragma clang Diagnostic ignored -Wdeprecated-декларации, чтобы он работал. - person CodeReaper; 26.11.2013

Есть настройка сборки для переключения предупреждений об устаревших функциях.

Хотя правильный способ сделать это - проверить версию ОС во время выполнения и выполнить устаревший метод, если необходимо, или новый в противном случае.

person Kenneth Ballenegger    schedule 04.01.2011
comment
Я ищу переключатель, чтобы отключить одно конкретное устаревшее предупреждение, которое я знаю, что делаю, но не отключаю все. Спасибо. - person ohho; 05.01.2011
comment
В таком случае посмотрите мой другой ответ на этот вопрос. - person Kenneth Ballenegger; 06.01.2011

Вы можете подавить конкретное устаревшее предупреждение, создав файл «Deprecated.h», в котором вы объявляете устаревшие методы как подходящие для категории.

person Kenneth Ballenegger    schedule 06.01.2011
comment
это плохая идея, вместо этого вы должны просто подавить конкретное предупреждение, используя синтаксис прагмы - person odyth; 13.09.2013