Implementé un protocolo con un método opcional y en el método de llamada deseo enviar respondsToSelector:
a self.delegate
antes de enviar el mensaje, pero eso no se compila. El mensaje de error es:self.delegate respondsToSelector: ... no compila
No Método de instancia conocido para el selector 'respondsToSelector'.
Como solución alternativa, que "saneadas" el delegado como se muestra a continuación, que recopila ...
//MyClass.h:
@class MyClass;
@Protocol MyClassDelegate
- (void)myClass:(MyClass *)sender willDoSomething:(BOOL)animated;
@end
@interface MyClass : UIViewController
@property (nonatomic, weak) id<MyClassDelegate> delegate;
@end
y
//MyClass.m:
...
@synthesize delegate = _delegate;
...
id sanitizedDelegate = self.delegate; //Hmmmm... why does this work?
if ([sanitizedDelegate respondsToSelector:@selector(myClass:willDoSomething:)]) {
[self.delegate myClass:self willDoSomething:animated];
}
.
Revisé una serie de publicaciones, entre ellas this one, pero no responde al problema de compilación fallida.
Además, descriptores de acceso alternativas no funcionan ...
[self delegate]
//or
_delegate
Alguien ha visto esto o puede aconsejar una mejor manera de manejar?
IOS 5.0: (9A334), Xcode 4.2.1 (4D502)
Ka-ching ... Tomaré la puerta n. ° 3. – vmanjz
¡Declarando que el delegado como NSObject funcionó, gracias! – c0d3Junk13