如何验证委托是否响应选择器?

时间:2010-02-10 18:02:06

标签: iphone delegates selector

我知道我需要写:

 [delegate respondsToSelector:@selector(myMethod:)]

但是编译器抱怨respontsToSelector不是协议中的方法,这是正确的,但是我看到很多示例代码都使用了这个,你是怎么做到的?

2 个答案:

答案 0 :(得分:58)

您的@protocol需要实施<NSObject>,只需将协议定义更新为:

@protocol MyProtocol <NSObject>

答案 1 :(得分:9)

Greg Martin有你的答案,但这里有一个快速解释为什么编译器抱怨:

respondsToSelector:方法是NSObject协议的一部分,因此当您尝试将该消息发送到删除(类型为id)时,编译器无法知道你的代表可能能够处理它。