У меня есть метод, который запускает это:
Track* track = [[Track alloc] init:[obj objectForKey:@"PersistentID"] :[obj objectForKey:@"Name"] :[obj objectForKey:@"Artist"] :(NSInteger*)[obj objectForKey:@"Total Time"] :(NSInteger*)[obj objectForKey:@"Play Count"]]; [self setCurrentTrack:(Track*) track]; [track release];
Должен ли я выпустить трек?
Да. Вы несете ответственность за освобождение объекта в любое время, когда у вас есть этот объект. Вы являетесь владельцем объекта в любое время, когда отправляете ему сообщение alloc, new, copy или keep. Ваше свойство currentTrack должно сохранить трек.
ну, вам НЕ ДОЛЖНО, но если вам больше не нужно его использовать, тогда вам следует. также не обязательно иметь ": (Track *) track];" Я лично предпочитаю
[self setCurrentTrack:track];
потому что это более распространенная практика.