ich bin ein bisschen verwirrt, wenn wir eine pointer
freigeben oder nil
auf den Zeiger verwenden, gibt es den Speicher frei. Aber was ist mit dem Zeiger selbst? es zeigt auf ein Objekt, das nicht mehr existiert, also wird der Zeiger automatisch entfernt? ist es implizit, dass dealloc
sowohl den Speicher als auch den Zeiger selbst freigibt?Freigabespeicher und der Zeiger selbst? in objective-c
Dank
danke Radu, also könnten wir einen Zeiger haben, der nach nirgendwo zeigt, wenn wir dann diesen Zeiger benutzen, könnte es die App zum Absturz bringen, ist das korrekt? Normalerweise sehe ich nur die Retain/Release, ohne "Nil" auf den Zeigern zu verwenden, also frage ich mich, ob es ein kleiner Fehler ist oder ob es der normale Weg ist. – Paul
@Paul, ja, das ist in der Tat eine "defensive Programmierung" -Technik. Wenn Sie den Zeiger auf Null setzen, stürzt die App nicht ab, wenn Sie einen Fehler machen, und versucht, sie zu verwenden, da das Senden von Nachrichten an ein freigegebenes Objekt zu undefiniertem Verhalten führt (= zufällige Abstürze, wenn Sie zumindest erwarten Sie es, in der Regel nach der Veröffentlichung der App). – rid
danke, sollten wir immer noch "nil" im dealloc verwenden? Das Dealloc wird gestartet, wenn die App beendet wird. Was ist die Gefahr? – Paul