Wenn ich beim Erstellen des Objekts ein neues Objekt mit zwei Objektzeigern (siehe unten) erstelle, werden die Zeiger auf null gesetzt;
%Vor%Wenn ich (aus irgendeinem unerwarteten Grund) diese Zeiger nicht zuweiße und sie später in meiner Dealloc-Methode freigebe, ist das in Ordnung, ich bin mir ziemlich sicher, dass es so ist, wollte nur überprüfen?
%Vor%Gary
Wenn Sie eine Nachricht an nil senden, wird kein Fehler verursacht. Sie müssen sicherstellen, dass die Zeiger tatsächlich Null sind - das Senden einer Nachricht an einen Abfallzeiger verursacht wahrscheinlich Fehler.
Wenn Sie die Accessor-Eigenschaft verwenden, um Ihre Methoden zum Abrufen / Festlegen zu erstellen:
%Vor%Und in Ihrer .m-Datei:
%Vor%Sie können dann Ihre Variable in dealloc auf null setzen. Dies wird in der Tat rufen Sie Ihre Setter und dekrementieren die Referenzzahl um eins und räumen auf.
In Objective-C ist es wichtig, zwischen Objekten und Variablen zu unterscheiden. Sie können keinen Zeiger (den Wert einer Variablen) freigeben, Sie können nur ein Objekt freigeben (das Objekt, auf das sich ein Zeiger bezieht). Ein Nullzeiger bezieht sich auf kein Objekt, so dass Nachrichten, die an null gesendet werden, nichts tun (was normalerweise sicher ist).
Tags und Links objective-c cocoa