En Objective-C, nil
est définie comme une valeur appelée __DARWIN_NULL
, qui, essentiellement, évalue 0
ou false
dans si-états. Par conséquent, l'écriture
if (x == nil)
est le même que l'écriture d' if (!x)
et de l'écriture if (x != nil)
est égal à if (x)
(depuis le comparant à d' false
crée une négation, et en les comparant à l' true
maintient la condition de la même façon).
Vous pouvez écrire votre code de toute façon, et cela dépend vraiment sur qui tu pense que c'est plus lisible. - Je trouver de l' if (x)
pour faire plus de sens, mais cela dépend de votre style.
C'est comme comparer if (someCondition == true)
contre if (someCondition)
.
Tout dépend de vous, et qui va être la lecture du code.
Edit: Comme Yuji correctement mentionne, depuis Objective-C est un sur-ensemble de C, toute condition qui correspond à une valeur autre que 0 est considéré comme pour être vrai, et par conséquent, si someCondition
dans l'exemple ci-dessus ont été correspondre à une valeur entière, disons, -1, le comparant true
entraînerait false
, et le if ne serait pas évaluée. Quelque chose d'être conscient de.