2012-07-16 25 views
7

Estoy actualizando MGSplitViewController para iOS 5.1, y quiero que se me advierta sobre el uso de métodos obsoletos de Objective-C. Desafortunadamente, MGSplitViewController es compatible con iOS 3.2, por lo que quiero admitir todas las devoluciones de llamadas obsoletas, pero ignoro las advertencias sobre ellas.¿Cómo ignoro selectivamente las advertencias de clang sobre el uso de implementaciones obsoletas de Object-c?

He permitido advertencias sobre "Alteración temporal DEPRECATED Objective-C" (Métodos CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS) en la configuración de mi objetivo build, pero no puedo ignorarlo con

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS" 

- (void) deprecated_objc_method_override { 
} 

#pragma clang diagnostic pop 

Respuesta

18

CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS corresponde a -Wdeprecated-implementations, que doesn Xcode No se muestra en su área de "Ayuda rápida". Por lo que las siguientes obras:

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wdeprecated-implementations" 

- (void) deprecated_objc_method_override { 
} 

#pragma clang diagnostic pop 
+2

Otra opción, si la modificación de la realidad de origen no pudo ser querido, es apagar la advertencia al compilar archivos específicos (como los que implementan las clases MGSplit. Por ejemplo, pasar del compilador sólo para los archivos de implementación como '-Wno-deprecated-implementation's –

6

También está la relacionada deprecated-declarations bandera. Esto suprime advertencias como "'foo' está en desuso: primero desaprobado en OS X 10.10 - Use la barra en su lugar".

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wdeprecated-declarations" 

    : 

#pragma clang diagnostic pop 
Cuestiones relacionadas