Does anyone know the best way to check to see if an optional protocol method has been implemented.
I tried this:
if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
where delegate is:
id<MyProtocol> delegate;
However, I get an error saying that the function respondsToSelector:
is not found in the protocol!
respondsToSelector:
is part of the NSObject
protocol. Including NSObject
in MyProtocol
should solve your problem:
@protocol MyProtocol <NSObject>
@optional
-(void)optionalProtocolMethod:(id)anObject;
@end
What I do is applying the following recipe:
if(self.delegate && [self.delegate respondsToSelector:@selector(closed)]){
[self.delegate closed];
}
Where 'closed' is the method that I wanted to call.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With