2016-05-08 5 views
1

Wäre das Aufrufen von removeFromSuperview in einer angepassten UIView als [self removeFromSuperview] korrekt von seiner Superansicht entfernt, genau so wie [self.customView removeFromSuperview] in seiner Superansicht auszuführen?Self-Zuordnung durch Aufruf von removeFromSuperview auf sich selbst?

Ich habe überprüft und es scheint das gleiche zu tun, aber ich würde immer noch sicher gehen wollen!

+3

Natürlich würde es. Ich verstehe die Frage nicht wirklich. – Avi

+0

Ich weiß, es ist dumm .. aber letzte Nacht für eine Sekunde war ich wie, ist es wirklich ..? Sollte gerade ins Bett gegangen sein. – durazno

Antwort

2

Sicher. Wie eine UIView Instanz die Nachricht removeFromSuperview empfängt, ist irrelevant - sie tut genau dasselbe, ob sie von außerhalb oder innerhalb der Instanz aufgerufen wurde.

Die Ansicht wird auch auf genau die gleiche Weise freigegeben, nachdem sie aus der Superview entfernt wurde, solange keine anderen starken Referenzen darauf stehen. Wenn Sie möchten, können Sie es selbst testen, indem Sie die Methode in der Unterklasse Ihrer Sicht implementieren und einen NSLog oder einen Haltepunkt hinzufügen.

Die einzige bemerkenswerte Ausnahme, wenn Sie removeFromSuperview nennen kann, ist, sollten Sie nie Anruf aus innerhalb der drawRect: Methode nach Ansicht as stated in the documentation. Dies würde zu undefiniertem Verhalten führen.

Verwandte Themen