war nur ein Code-Review zu tun und begann sich zu fragen:if (self = [super init]) vs. if ((self = [super init]))
Ich dachte if (self = [super init])
überprüft, ob Rückgabewert von [super init]
zuweisen zu Variable self
war erfolgreich oder nicht (Wert der Operation). Somit wäre (self = nil)
eigentlich TRUE
.
Ich dachte, if ((self = [super init]))
überprüft, was der Wert self
nach der Zuweisung ist (Wert der Variablen). Somit wäre ((self = nil))
FALSE
.
Welcher ist der richtige Weg, um eigene Klassen zu initialisieren? Die Apple-Dokumentation verwendet die frühere (for example here), den Stil, den ich jetzt tatsächlich verwende.
Danke für die Klärung, was der Ausdruck macht - und warum ich dachte, dass es zusätzliche Klammern geben muss! Jetzt erinnere ich mich daran, solche Compilerwarnungen in anderen Umgebungen zu erhalten und eine zweite Klammer hinzuzufügen (nachdem ich den Ausdruck überprüft hatte, tat er natürlich, was ich wollte). – JOM