В Objective-C nil
определяется как значение, называемое __DARWIN_NULL
, которое по существу оценивается как 0
или false
в операторах if. Поэтому написание
if (x == nil)
- это то же самое, что и запись if (!x)
, а запись if (x != nil)
равна if (x)
(поскольку сравнение с false
создает отрицание, а сравнение с true
сохраняет условие неизменным).
Вы можете написать свой код в любом случае, и это действительно зависит от того, что вы считаете более читабельным. Я считаю if (x)
более понятным, но это зависит от вашего стиля.
Это как сравнивать if (someCondition == true)
с if (someCondition)
.
Все зависит от вас и от того, кто будет читать код.
Редактировать: Как правильно упоминает Юджи, поскольку Objective-C является надмножеством C, любое условие, которое оценивается как значение, отличное от 0, считается истинным, и поэтому, если someCondition
в В приведенном выше примере было получено целое значение, скажем, -1, сравнение с true
привело бы к false
, и оператор if не был бы оценен. Что-то, о чем нужно знать.