Ich benutze das iPhone SDK 3.0, aber ich denke, das ist ein allgemeines Missverständnis, wie Dinge arbeiten w/c & Speicherverwaltung.Zeiger Speicherverwaltung Missverständnis w/Ziel-c
I außer Kraft gesetzt habe die viewWillAppear Methode wie diese
@implementation MyViewController
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
}
// other stuff...
@end
wenn ich versuche, oben vom View-Controller wechseln weg und schalten alles richtig funktioniert wieder.
ABER, meine Neigung ist es, den ursprünglichen Zeiger auf "Elemente" "freizugeben", weil ich denke, ein Verweis auf das NSArray wird jetzt von BottomBar gehalten. Aber wenn ich das tue (siehe Code unten) und versuche, vom UIViewController abzuweichen, erhalte ich einen Speicherverwaltungsfehler (- [CFArray count]: Nachricht, die an freigegebene Instanz 0xd5f530 gesendet wird).
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
[items release];
}
Muss ich in diesem Fall nicht Release Angaben müssen? Oder mache ich etwas falsch? Offensichtlich gibt der empirische Beweis an, dass ich "Einzelteile" nicht freigeben sollte, aber es ist mir nicht klar, warum dies der Fall ist.
Danke für jede Info/"Zeiger"!
danke an alle! und danke für den Link. – user141146