次のようなコードを見てきました:
if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ...
しかし、メッセージを に送信すると(これは に評価されます)nilが返されるだけなので、次のようにしない理由はありません。nilNO
if ([delegate respondsToSelector:@selector(doSomething)]) ...
の場合、前者の方が速いですdelegate == nilか?いずれにせよ、コードが少ないため、後者を好みます。
そして、lessよりも優れていmoreます。すべての Unix プロはそれを知っています。