Ich habe eine init
Methode, die Werte von einem NSDictionary
nimmt. Dies ist in meinem Friend
Objekt.Memory Management: Freigeben von benutzerdefinierten Objekten im Konstruktor - Objective-C
Meine Frage ist, wann ich diese bestimmte Instantiierung von Friend
freigeben?
- (id)initWithValue:(NSString *)value {
Friend *friend = [[Friend alloc] init];
friend.friendId = [value valueForKeyPath:@"id"];
friend.friendName = [value valueForKeyPath:@"name"];
return friend;
}
Ich nenne die init
unten Methode
for (id value in dataDict) {
Friend *friend = [[Friend alloc] initWithValue:value];
[friends addObject:friend];
[friend release];
}
die Friend
Objekte zu einem friends
Array hinzufügt ich dann folgend in Code:
Friend *friend = (Friend *)[friends objectAtIndex:indexPath.row];
Wenn ich das Friend
Objekt autorelease
in der init
Methode dann bekomme ich eine Nachricht gesendet wurde, um zu entziehen d Instanz, wenn ich den obigen Code verwende, um den Wert für bestimmte Objekte basierend auf indexPath.row
zu erhalten.
später auf der ganzen Strecke, die ich ging tatsächlich mit der initWithValue Art und Weise, Dinge zu tun. Es macht nur mehr Sinn und es bedeutet nicht, dass ich das Objekt in der tatsächlichen Methode initialisieren muss. Danke dafür! – fuzz