2011-01-04 8 views
5

C'è un #pragma per ignorare un avvertimento fase di compilazione, ad esempio:Come ignorare l'avviso deprecato in Xcode?

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

devo mantenere la compatibilità per 4,2 pre-dispositivi iOS da:

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

Grazie

risposta

2

C'è una build impostazione per attivare o disattivare l'avviso per le funzioni obsolete.

Anche se il modo corretto per eseguire questa operazione è controllare la versione del sistema operativo in fase di esecuzione ed eseguire il metodo obsoleto, se necessario, oppure il nuovo in caso contrario.

+0

Cerco un interruttore per disattivare uno specifico avvertimento deprecato che so cosa sto facendo, ma non spegnere tutto. Grazie. – ohho

+0

In tal caso, controlla la mia altra risposta a questa domanda. –

0

È possibile sopprimere uno specifico avviso deprecato creando un file 'Deprecato.h', in cui si dichiarano validi i metodi deprecati in una categoria.

+2

questa è una cattiva idea, dovresti invece sopprimere il warning specifico usando la sintassi pragma – odyth

7

Sì, c'è

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

Se vi siete mai chiesti che cosa la sintassi corretta è per un certo errore basta trovare in Xcode poi guardare l'aiuto rapido

enter image description here

+4

Ho dovuto usare #pragma clang diagnostic ignorato "-Wdeprecated-declarations" perché funzionasse. – CodeReaper