2009-08-12 23 views

Antwort

-1

ich diesen Code haben. Ich stellte sicher, dass es tatsächlich zugewiesen wurde, bevor ich versuchte, es zu veröffentlichen, ich setzte es auch auf Null.

- (void)dealloc 
{ 
    if(address!=nil) { 
     address = nil; 
     [address release]; 
    } 

    // releae the map delegate otherwise it will try and call our classes with no data. 
    map.delegate = nil; 
    [super dealloc]; 
} 
+0

Ich hoffe, dass Sie es freigeben, bevor Sie es auf Null setzen. –

+0

1. Sie setzen Adresse = Nil und senden Release-Nachricht zu Nil-Objekt? Warum? Adresse kann zugewiesen werden. dann freigegeben. Aber nach dieser Adresse ist nicht Null – oxigen

+0

Eigentlich ein guter Punkt, habe ich diese Antwort auf StackOverflow angesehen. http://stackoverflow.com/questions/1211018/objective-c-release-dealloc-and-the-self-reference Ich denke, ich sollte es in umgekehrter Reihenfolge haben. [Adressenfreigabe]; Adresse = Null; Die Null wird vielleicht nicht benötigt, aber ich denke nicht, dass es schlecht ist. Danke für die Kommentare, ich lerne immer noch so gut auf diesem Zeug. Prost John. –