iphone - perdido - Verificando si se implementó un método de protocolo opcional
itunes (2)
respondsToSelector:
es parte del protocolo NSObject
. Incluir NSObject
en MyProtocol
debería resolver su problema:
@protocol MyProtocol <NSObject>
@optional
-(void)optionalProtocolMethod:(id)anObject;
@end
¿Alguien sabe la mejor manera de verificar si se ha implementado un método de protocolo opcional?
Intenté esto:
if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
donde el delegado es:
id<MyProtocol> delegate;
Sin embargo, me sale un error al decir que la función respondsToSelector:
no se encuentra en el protocolo!
Lo que hago es aplicar la siguiente receta:
if(self.delegate && [self.delegate respondsToSelector:@selector(closed)]){
[self.delegate closed];
}
Donde ''cerrado'' es el método que quería llamar.