2011-01-04 11 views
5

¿Existe un #pragma para anular una advertencia de tiempo de compilación, por ejemplo:¿Cómo anular la advertencia obsoleta en 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) 

Tengo que mantener la compatibilidad de 4.2 pre-dispositivos IOS por:

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

Gracias

Respuesta

2

Hay un aumento configuración para alternar la advertencia de funciones obsoletas.

Aunque la forma correcta de hacerlo sería comprobar la versión del sistema operativo en tiempo de ejecución y ejecutar el método obsoleto si es necesario o el nuevo en caso contrario.

+0

Busco un interruptor para desactivar una advertencia obsoleta específica que sé lo que estoy haciendo, pero no apago todo. Gracias. – ohho

+0

En ese caso, vea mi otra respuesta a esta pregunta. –

0

Puede suprimir una advertencia obsoleta específica creando un archivo 'Deprecated.h', en el que declara que los métodos obsoletos son buenos en una categoría.

+2

esta es una mala idea, en su lugar solo debes suprimir la advertencia específica usando la sintaxis pragma – odyth

7

Sí hay

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

Si alguna vez se pregunta cuál es la sintaxis correcta es para un cierto error acaba de encontrar que en Xcode continuación, busque en la ayuda rápida

enter image description here

+4

Tuve que usar #pragma clang diagnostic ignored "-Wdeprecated-declarations" para que funcione. – CodeReaper

Cuestiones relacionadas