Cómo desaprobar un método correctamente en Xcode 4

Acabo de revisar las respuestas aquí pero no ayudé. Cuando agrego un atributo en desuso solo a la statement de método que el comstackdor dice Attributes on method implementation and its declaration must match . ¿Debo añadir algo a la implementación del método?

¡Gracias!

Simplemente agregue el atributo a la statement:

 @interface Blah - (void)method __attribute__((deprecated)); @end 

Siempre que su inclusión sea correcta para la traducción, esto debería funcionar bien. Quizás haya agregado el atributo a la definición , no a la statement ? De lo contrario, una demostración (muestra de código) ayudaría.

Actualizar

Aunque el enfoque anterior funciona para posts típicos, parece que el clang se confunde con IBAction .

Con el clang, los attributes ibaction están insertados implícitamente (para lo que anteriormente era un typedef ).

Cuando el atributo se especifica solo en la statement, la salida del preprocesador es la siguiente:

 // preprocessed declaration - (void)__attribute__((ibaction))setSomething:(id)sender __attribute__((noreturn)); // preprocessed implementation - (void)__attribute__((ibaction))setSomething:(id)sender ... 

Por lo tanto, parece que el comstackdor simplemente se confunde con esta decoración oculta, y también debe agregar el atributo a la implementación / definición para suprimir la advertencia cuando el método es una IBAction .

Tienes que poner el atributo en desuso tanto en la statement como en la implementación del método, al less en Xcode 4.3.2 con clang.