In Objective-C nilwird ein Wert definiert __DARWIN_NULL, der aufgerufen wird und im Wesentlichen nach 0oder falsein if-Anweisungen ausgewertet wird . Daher ist Schreiben
if (x == nil)dasselbe wie Schreiben if (!x)und Schreiben if (x != nil)ist gleich if (x)(da das Vergleichen mit falseeine Negation erzeugt und das Vergleichen mit trueden Zustand gleich hält).
Sie können Ihren Code so oder so schreiben, und es hängt wirklich davon ab, welcher Code Ihrer Meinung nach besser lesbar ist. Ich finde if (x)es sinnvoller, aber es hängt von Ihrem Stil ab.
Es ist wie der Vergleich im if (someCondition == true)Vergleich if (someCondition).
Es hängt alles von Ihnen ab und davon, wer den Code lesen wird.
Bearbeiten: Wie Yuji richtig erwähnt, wird, da Objective-C eine Obermenge von C ist, jede Bedingung, die mit einem anderen Wert als 0 ausgewertet wird, als wahr angesehen. Wenn someConditionim obigen Beispiel ein ganzzahliger Wert von Sagen wir -1, ein Vergleich mit truewürde dazu führen false, und die if-Anweisung würde nicht ausgewertet. Etwas zu beachten.
if(someCondition==true)davon abgeraten wird, da in C-abgeleiteten Sprachen jeder andere Wert als 0 im Prinzip als boolescher wahrer Wert angesehen werden kann, aber aus historischen Gründen, wenn definiertsomeConditionist-1und dann als falsch ausgewertet wird.true1someCondition==true