Reenvío dynamic: suprimir advertencia de implementación incompleta

Tengo una clase que expone algunos métodos, cuya implementación es provista por un objeto interno.

Estoy utilizando la invocación de reenvío para despachar en tiempo de ejecución el método llama al objeto interno, pero XCode se queja porque no puede encontrar una implementación de los métodos declarados.

Encontré algunas otras preguntas similares en SO, pero todas fueron resueltas con un cambio de diseño.

No me refiero a una discusión sobre el diseño aquí, pero si alguien tiene alguna sugerencia al respecto tengo una pregunta abierta sobre Revisión de Código, que es más adecuada para ese tipo de discusiones.

Mi pregunta es si existe un método para desactivar la advertencia de Incomplete Implementation en XCode.

Puede suprimir las advertencias de Incomplete Implementation al agregar

  #pragma clang diagnostic ignored "-Wincomplete-implementation" 

justo arriba de @implementation

Espero que esto ayude

EDITAR

Después de que me dijeron en los comentarios que esto no funcionaba para nadie y descubrir que la razón era porque era una advertencia diferente que estaban recibiendo, he jugado un poco y he podido resolver el problema, así que pensé que lo haría. actualice esta respuesta para incluir la suya y para GCC ignora. Entonces, para el problema de @Tony debería funcionar lo siguiente

  #pragma clang diagnostic ignored "-Wprotocol" 

Para cualquiera que desee conocer la versión del comstackdor de GCC es

  #pragma GCC diagnostic ignored "-Wprotocol" #pragma GCC diagnostic ignored "-Wincomplete-implementation" 

También diagnotstic ignores que todos estos diagnotstic ignores también se pueden hacer especificando la configuración en cada archivo yendo a XCODE Project >> Target >> Build Phases >> Compile Sources y agregando un indicador de comstackción para que simplemente agregue -Wprotocol o Wincomplete-implementation o el comstackdor-indicador que necesite.

Espero que esta actualización ayude a todos, si es necesario actualizaré mi respuesta para incluirla.

EDIT 2

Estaba investigando un poco más acerca de esto, encontré el Manual de usuario de Clang Compliler, así que pensé que sería interesante y útil para cualquiera que tenga problemas en esta área.

También encontré otra forma en la que puedes utilizar estos #pragma diagnostic ignores y es que puedes push y pop para que, si solo quieres ignorar una sección particular del archivo y no todo, entonces podrías hacer lo siguiente

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar" // And pop the warning is gone. char b = 'fa'; #pragma clang diagnostic pop 

Recuerde que todos estos ignorados de comstackción #pragma se pueden usar también con GCC por lo que lo anterior

  #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmultichar" // And pop the warning is gone. char b = 'fa'; #pragma GCC diagnostic pop 

El push y el pop parecen funcionar con todos los diagnostic ignores que he probado hasta ahora.

Otro es

  #pragma clang diagnostic ignored "UnresolvedMessage" #pragma GCC diagnostic ignored "UnresolvedMessage" 

El que suprime las variables no utilizadas es

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" NSString *myUnusedVariable; #pragma clang diagnostic pop 

y la versión de GCC es

  #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" NSString *myUnusedVariable; #pragma GCC diagnostic pop 

Unos más para ignorar las advertencias de unavailableInDeploymentTarget

  #pragma clang diagnostic push #pragma ide diagnostic ignored "UnavailableInDeploymentTarget" leftEdge.barTintColor = rightEdge.barTintColor = self.toolbar.barTintColor; #pragma clang diagnostic pop 

y realizar fugas deSelector

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [target performSelector:cancelAction withObject:origin]; #pragma clang diagnostic pop 

y declaraciones obsoletas

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" button = [[UIBarButtonItem alloc] initWithTitle:buttonTitle style:UIBarButtonItemStyleBordered target:self action:@selector(customButtonPressed:)]; #pragma clang diagnostic pop 

Gracias a DanSkeel puedes encontrar la lista completa aquí

Puede declarar los métodos en una interfaz de categoría de clase:

 @interface MyClass (ForwardedMethods) - (void)doSomething; @end 

(sin una implementación para la categoría). Entonces Xcode ya no se quejará de la “implementación incompleta”.