Запомните простое эмпирическое правило. Отпустите только если вы вызвали alloc
, init
или new
на объекте. Итак, вы захотите выпустить soundFile1
. Кроме того, вы можете использовать удобный метод и автоматически добавлять звуковой файл в пул автоматического выпуска:
NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
NSURL *file = [NSURL fileURLWithPath:path]; //autoreleased
player = [[AVAudioPlayer alloc] initWithContentsOfURL:file error:nil];
if([player prepareToPlay]){
[player play];
}
И да, вы можете выпустить player
(soundFilePlayer1
) в dealloc
, но если вы не зацикливаете аудиофайл, есть лучший способ. Соответствует AVAudioPlayerDelegate
:
@interface YourView : UIViewController <AVAudioPlayerDelegate> { //example
Затем реализуйте метод здесь:
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {
//your audio file is done, you can release safely
[player release];
}