Cómo suprimir la advertencia de Objective-C “aplicación incompleta de la clase 'SomeClass'”?
-
27-09-2019 - |
Pregunta
I tiene una clase que es el enrutamiento muchos mensajes en instancia de componente interior. Así que la clase tiene solamente definición del método, pero sin aplicación. ¿Cómo puedo suprimir estas advertencias para los métodos dinámicos?
Actualizar
Mi ejemplo de código:
@interface SomeClass : NSObject
{
}
- (void)mssageA:(id)value1 additionalOption:(id)value2;
- (void)mssageB:(id)value1 additionalOption:(id)value2;
- (void)mssageC:(id)value1 additionalOption:(id)value2;
@end
@implementation SomeClass
- (id)forwardingTargetForSelector:(SEL)aSelector
{
if(aSelector==@selector(mssageA:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageB:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageC:additionalOption:)) return innerComponentInstance;
return [super forwardingTargetForSelector:aSelector];
}
@end
Solución
Creo que una implementación del protocolo podría tener este aspecto
@protocol SomeProtocol
@optional
- (void)mssageA:(id)value1 additionalOption:(id)value2;
- (void)mssageB:(id)value1 additionalOption:(id)value2;
- (void)mssageC:(id)value1 additionalOption:(id)value2;
@end
@interface SomeClass : NSObject <SomeProtocol>
{
}
@implementation SomeClass
- (id)forwardingTargetForSelector:(SEL)aSelector
{
if(aSelector==@selector(mssageA:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageB:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageC:additionalOption:)) return innerComponentInstance;
return [super forwardingTargetForSelector:aSelector];
}
@end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow