0

我试图判断是否有一种方法可以确定一个类在运行时是否符合特定的(可选)协议方法。有没有办法检查这个?不想向委托类中不存在的委托方法实现发送调用。

4

2 回答 2

5
 BOOL isProtocolConformed=[YourClass conformsToProtocol:@protocol(YourProtocol)];
 BOOL isSelectorResponse=[yourObject respondsToSelector:@selector(yourMethod)];
 if(isProtocolConformed && isSelectorResponse){
    //do your stuff
 }
于 2013-04-03T06:57:22.657 回答
2
if ([self.delegate respondsToSelector:@selector(protocolMethod)])
{
    [self.delegate protocolMethod];
}

文档

响应选择器:

返回一个布尔值,指示接收者是否实现或继承了可以响应指定消息的方法。

于 2013-04-03T06:57:10.933 回答