Управление памятью Objective-C: я должен выпустить? - PullRequest
0 голосов
/ 03 апреля 2010

У меня есть метод, который запускает это:

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];

Должен ли я выпустить трек?

Ответы [ 2 ]

2 голосов
/ 03 апреля 2010

Да. Вы несете ответственность за освобождение объекта в любое время, когда у вас есть этот объект. Вы являетесь владельцем объекта в любое время, когда отправляете ему сообщение alloc, new, copy или keep. Ваше свойство currentTrack должно сохранить трек.

0 голосов
/ 03 апреля 2010

ну, вам НЕ ДОЛЖНО, но если вам больше не нужно его использовать, тогда вам следует. также не обязательно иметь ": (Track *) track];" Я лично предпочитаю

[self setCurrentTrack:track];

потому что это более распространенная практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...