Я видел код вроде:
if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ...
Но, отправляя сообщение в nil
, просто возвращает nil
(который оценивается как NO
), поэтому почему бы просто не сделать:
if ([delegate respondsToSelector:@selector(doSomething)]) ...
Быстрее ли это, если delegate == nil
? В любом случае, я предпочитаю, чтобы последние вызывали у него меньше кода.
И, less
лучше, чем more
. Каждый Unix-профессионал знает об этом.