2012-04-02 11 views

Antwort

8

Technisch, nein. Die documentation for -[NSObject init] sagt, dass

Die init Methode definiert in der NSObject Klasse führt keine Initialisierung; Es gibt einfach self zurück.

Weil es ist dokumentiert, und es ist wahrscheinlich schon eine Reihe von Code, der darauf beruht, dass Tatsache ist sehr unwahrscheinlich, dass in zukünftigen Versionen von Mac OS X ändern

Edit:BoltClock's a Unicorn bringt Ein Punkt, den ich gerne hyperbolischer machen würde: Die Gesamtzeit, die durch den Aufruf von -[NSObject init] für alle Nutzer Ihres Programms eingespart wird, wird wahrscheinlich nie die Debugging-Zeit überschreiten, die Sie übernehmen würden, wenn Sie die Oberklasse für Ihre Klasse ändern anders als NSObject und vergessen, einen Anruf zuhinzuzufügen.

4

Vom documentation, es scheint überhaupt keine Initialisierung zu tun:

Die init Methode in der NSObject definiert Klasse führt keine Initialisierung; Es gibt einfach self zurück.

Ich nehme an, es harmlos wäre nicht [super init] zu nennen, aber es gibt keinen Grund, nicht zu Konventionen zu folgen und, wissen Sie, rufen Sie es trotzdem in der Unterklasse. Zum Beispiel kann Ihre Unterklasse in der Zukunft von einer anderen Klasse erben, die eine Initialisierungslogik in ihrer eigenen -init-Methode enthalten kann, die Ihre Unterklasse dann benötigt.

0

Rufen Sie einfach einen der Initialisierer super in Ihrer Implementierung, weil Sie nur tun sollten, was klar und richtig ist.

Verwandte Themen