Ein [super dealloc] fürht dazu, dass die -dealloc-Methode von super ausgeführt wird. Es ist überhaupt nicht die Aufgabe von -dealloc ($NSIrgendwas), die Instanz selbst zu entfernen. -dealloc wird ausgeführt, wenn bereits feststeht, dass die Instanz beseitigt wird. Sie ist ein Teil der Beseitigung und verursacht diese nicht. Daher erzeugst du so garantiert ein Memoryleak – jedenfalls gibt die Doku nichts anderes her. Die Speicherverwaltung ist gekapselt und daher mit ihrer API hinzunehmen.
Zudem kannst du ein Memoryleak erzeugen, weil du dich möglicherweise selbst schon teilweise initialisiert hast. -dealloc (super) würde etwaig bereits bestehende Instanzen von dir selbst nicht beseitigen.
Daher – und dies war der Klammerzusatz – musst du dich selbst erst einmal dealloc-fähig machen. Du kannst dich dabei zum Teil auf die Garantie verlassen, dass alle Instanzvariablen 0, NULL bzw. nil sind. Das dürfte in vielen Fällen ausreichen. In allen anderen Fällen musst du eben dafür sorgen.
Aber auch hier gilt: Du hast die Grundkonzepte der Speicherverwaltung nicht verstanden und kümmerst dich um Spezialeffekte. Das ist nicht sinnvoll.
Es wird übrigens auch bei deinem nächsten Thread nicht sinnvoll sein.
Zudem kannst du ein Memoryleak erzeugen, weil du dich möglicherweise selbst schon teilweise initialisiert hast. -dealloc (super) würde etwaig bereits bestehende Instanzen von dir selbst nicht beseitigen.
Daher – und dies war der Klammerzusatz – musst du dich selbst erst einmal dealloc-fähig machen. Du kannst dich dabei zum Teil auf die Garantie verlassen, dass alle Instanzvariablen 0, NULL bzw. nil sind. Das dürfte in vielen Fällen ausreichen. In allen anderen Fällen musst du eben dafür sorgen.
Aber auch hier gilt: Du hast die Grundkonzepte der Speicherverwaltung nicht verstanden und kümmerst dich um Spezialeffekte. Das ist nicht sinnvoll.
Es wird übrigens auch bei deinem nächsten Thread nicht sinnvoll sein.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?