I've seen code like:
if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ...
But, sending a message to nil just returns nil (which evaluates to NO), so why not just do:
if ([delegate respondsToSelector:@selector(doSomething)]) ...
Is the former faster if delegate == nil? Either way, I prefer the latter cause it's less code.
And, less is better than more. Every Unix pro knows that.