我见过这样的代码:
if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ...
但是,发送一条消息nil只返回nil(计算结果为NO),那么为什么不这样做:
if ([delegate respondsToSelector:@selector(doSomething)]) ...
如果 ,前者更快delegate == nil吗?无论哪种方式,我更喜欢后者,因为它的代码更少。
并且,less优于more. 每个 Unix 专业人士都知道这一点。