30得票3回答
Objective-C:为什么在调用 respondsToSelector 之前要检查 nil?

我看到了类似以下的代码:if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ... 但是,向 nil 发送消息只会返回nil(等同于NO),那么为什么不直接这样做:if ([d...

21得票5回答
super respondsToSelector:返回true,但实际上调用super(selector)会导致“向实例发送未识别的选择器”的错误。

好的,我有点困惑。 我有一个UIScrollView的子类,它是我尝试创建水平滚动的"表格视图" UI元素的方式。UIScrollView本身设置了一些它内部使用的UIGestureRecognizer,而且它似乎还将自己设置为这些UIGestureRecognizer的委托。我还在我的水平...

7得票2回答
ConformsToProtocol: && RespondsToSelector: 与 respondsToSelector: 的区别

当想要在代理对象上调用协议方法时,希望该代理对象实现相应的协议方法。我看到有些开发人员首先检查 if([delegate respondsToSelector: @selector(aMethod)]) { //send message; } 这样做不是更...