In einem Buch, sah ich, dass, wenn eine Unterklasse eine Methode der übergeordneten Klasse überschrieben wird, wirWarum in Objective-C verwenden wir self = [super init] statt nur [super init]?
self = [super init];
Zuerst haben kann, soll dies in der init
Methode der Unterklasse zu tun?
Zweitens frage ich mich, warum der Anruf
[super init];
nicht gerade ist? Ich meine, zum Zeitpunkt des Aufrufs init
wird der Speicher bereits von alloc
zugewiesen (ich denke, Foobar
Foobar
ist der Name der Unterklasse. So können wir nicht [super init]
anrufen, um die Mitgliedsvariablen zu initialisieren? Warum müssen wir die bekommen Rückgabewert von init
und weisen self
? ich meine, bevor [super init]
Aufruf self
auf einen gültigen Speicherzuweisung chuck gerichtet sein sollte ... also warum wieder etwas zu sich selbst zuweisen?
(wenn die Zuordnung wird nicht nur [super init]
self
's vorhandenen Wert?)
http://cocoawithlove.com/2009/04/what-does-it-mean-when-you-assign-super.html –
@AndreasCarlbom brillante Tutorial-Dank ... – Krishnabhadra
mögliche Duplikat von [Warum sollte ich anrufen self = \ [super init \]] (http://stackoverflow.com/questions/2956943/why-should-i-call-self-super-init) –