Ziel c-Frage, ich habe einen Zeiger NSObject * abc; Ich habe es nicht in der init-Methode zugewiesen und initialisiert. Muss ich das in der Methode machen?
-(void)someThingElse{
if(abc != nil){
[abc release];
abc = nil;
}
abc = [[NSObject alloc] init];
}
Ist mein Fluss richtig? Danke dir.
Antworten:
6 für die Antwort № 1Ihr Code könnte folgendermaßen vereinfacht werden:
[abc release];
abc = [[NSObject alloc] init];
weil
Senden einer
-release
Nachricht annil
tut nichts, also keine Notwendigkeit zu prüfennil
keine Notwendigkeit zu setzen
abc
zunil
wenn Sie gerade dabei sind, es zuzuweisen
Sie können auch deklarieren abc
als objektives Eigentum mit retain
Semantik, in diesem Fall würden Sie nur Folgendes tun:
self.abc = [[[NSObject alloc] init] autorelease];
In beiden Fällen ist Ihre dealloc
Methode sollte auch ein [abc release]
, Na sicher