Предполагая, что что-то является указателем на объект NSObject.
if(something)
Возвращает YES, если что-то не является указателем, отличным от nil
if(!something)
Возвращает YES, если что-то равно nil.Это в данном случае, потому что something
равен нулю, а !
(оператор not) инвертирует это, чтобы стать истинным,
if(something)
совпадает с if(something != nil)
.Но большинство программистов, которых я знаю, думают, что это тавтология, и предпочитают более короткое выражение.
Пока я в этом - вы можете увидеть это как if(nil != something)
.Причина этого заключается в том, что если случайно вы напишите =
вместо !=
, это вызовет ошибку, поскольку вы не можете установить значение на ноль, но если это было наоборот, и вы неправильно написалиусловие, это установит значение чего-либо равным nil, что может не соответствовать тому, что вы хотите сделать.