检查是否已经实现了一个可选的协议方法
有谁知道最好的方法来检查是否已经实现了一个可选的协议方法。
我试过这个:
if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
代表在哪里:
id<MyProtocol> delegate;
但是,我收到一个错误,说在函数respondsToSelector:
没有在协议中find!
respondsToSelector:
是NSObject
协议的一部分。 在MyProtocol
包含NSObject
应该可以解决你的问题:
@protocol MyProtocol <NSObject> @optional -(void)optionalProtocolMethod:(id)anObject; @end
我所做的是应用以下配方:
if(self.delegate && [self.delegate respondsToSelector:@selector(closed)]){ [self.delegate closed]; }
在哪里“closures”是我想要调用的方法。