我知道我需要写:
[delegate respondsToSelector:@selector(myMethod:)]
但是编译器抱怨respontsToSelector不是协议中的方法,这是正确的,但是我看到很多示例代码都使用了这个,你是怎么做到的?
答案 0 :(得分:58)
您的@protocol
需要实施<NSObject>
,只需将协议定义更新为:
@protocol MyProtocol <NSObject>
答案 1 :(得分:9)
Greg Martin有你的答案,但这里有一个快速解释为什么编译器抱怨:
respondsToSelector:
方法是NSObject
协议的一部分,因此当您尝试将该消息发送到删除(类型为id
)时,编译器无法知道你的代表可能能够处理它。