Tôi đã nhìn thấy như:Mục tiêu-C: Tại sao chọn nil trước respondsToSelector :? đang
if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ...
Nhưng, gửi một thông điệp tới nil
chỉ trả nil
(mà đánh giá để NO
), vậy tại sao không chỉ làm:
if ([delegate respondsToSelector:@selector(doSomething)]) ...
Là cựu nhanh hơn nếu delegate == nil
? Dù bằng cách nào, tôi thích nguyên nhân thứ hai nó ít mã.
Và, less
là tốt hơn more
. Mọi chuyên gia Unix đều biết điều đó.
Tôi có xu hướng sử dụng cái sau và cũng quét mã của tôi để kiểm tra không cần thiết cho số không. Nếu nil không đau, đừng kiểm tra. Nếu nil sẽ là một sai lầm lập trình, không kiểm tra nó (có thể sử dụng một khẳng định thay thế). – Eiko