que he visto así:Objective-C: ¿Por qué comprobar nil antes de respondsToSelector :? código
if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ...
embargo, el envío de un mensaje a nil
sólo devuelve nil
(que evalúa a NO
), ¿por qué no acaba de hacer:
if ([delegate respondsToSelector:@selector(doSomething)]) ...
es el anterior más rápido si delegate == nil
? De cualquier manera, prefiero este último porque es menos código.
Y, less
es mejor que more
. Todos los profesionales de Unix lo saben.
Tiendo a utilizar este último, y también escaneo mi código para verificaciones innecesarias por cero. Si nada no duele, no lo revises. Si nil sería un error de programación, no lo verifique (quizás use una afirmación en su lugar). – Eiko