Vazamento de memória AVAudioPlayer

Eu estou preso em algum problema de vazamento de memória estranho relacionado ao AVAudioPlayer e preciso de ajuda depois de tentar tudo o que me veio à mente.

Aqui está a breve descrição do problema - o código aparece logo em seguida. Eu inicializo meu player e começo a tocar a trilha sonora em um loop infinito (e um loop infinito ou uma vez não alteram o problema). Alguns segundos depois que a música começou, eu mudo para outra trilha sonora, por isso eu crio um novo player, inicializo, libero o antigo (que está tocando) e então coloco o novo no lugar e o reproduzo.

Naquele momento (logo após eu ligar para o novo Player - [Player play]) eu recebo um vazamento de memória (de 3.5Kb).

Eu tentei o seguinte:

Pare o jogador antigo e solte-o - sem efeito

Solte o Player logo após a instrução de reprodução - não começou a jogar

Solte o dobro do antigo player - crash

Vazamento de memória NÃO acontece quando eu crio e jogo o primeiro jogador!

Além disso, na referência, ele diz que o 'play' é assíncrono e, portanto, provavelmente aumenta a contagem de referências em 1, mas, nesse caso, por que o [Player stop] não ajudou?

Obrigado,

Aqui estão algumas partes do código sobre como eu o uso:

- (void) loadAndActivateAudioFunction {
NSBundle        *mainBundle = [NSBundle mainBundle];
NSError         *error;
NSURL           *audioURL = [NSURL fileURLWithPath:[mainBundle pathForResource: Name ofType: Type]];
AVAudioPlayer   *player = [(AVAudioPlayer*) [AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];

if (!player) {
    DebugLog(@"Audio Load Error: no Player: %@", [error localizedDescription]);
    DuringAudioPrep = false;
    return;
}
[self lock];
[self setAudioPlayer: player];
[self ActivateAudioFunction];
[self unlock];

}

- (void) setAudioPlayer : (AVAudioPlayer *) player {
if (Player)
{
    if ([Player isPlaying] || Repeat)  // The indication was off???
        [Player stop];
    [Player release];
}
Player = player;

}

- (void) ActivateAudioFunction {
[Player setVolume: Volume];
[Player setNumberOfLoops: Repeat];    
[Player play];

DuringAudioPrep = false;

}

questionAnswers(3)

yourAnswerToTheQuestion