我试图判断是否有一种方法可以确定某个类是否在运行时符合特定(可选)协议方法。有没有办法检查这个?不希望在委托类中发送对不存在的委托方法实现的调用。
答案 0 :(得分:5)
BOOL isProtocolConformed=[YourClass conformsToProtocol:@protocol(YourProtocol)];
BOOL isSelectorResponse=[yourObject respondsToSelector:@selector(yourMethod)];
if(isProtocolConformed && isSelectorResponse){
//do your stuff
}
答案 1 :(得分:2)
if ([self.delegate respondsToSelector:@selector(protocolMethod)])
{
[self.delegate protocolMethod];
}
respondsToSelector:
返回一个布尔值,指示接收方是实现还是继承可以响应指定消息的方法。