AVAudioPlayer - você deve criar uma propriedade para funcionar? (Xcode)

Este é o código que estou usando agora e não está funcionando (nada acontece quando pressiono o botão que chama esse método). Anteriormente, eu tinha uma propriedade para o audioPlayer e funcionava (todos os audioPlayers abaixo eram self.audioPlayer, obviamente). O problema era que quando eu tentava tocar o som duas vezes, terminava o primeiro som tocando.

Isso não é bom porque estou fazendo uma placa de som e quero que os sons possam se sobrepor. Eu pensei que eu poderia apenas fazer o audioPlayer uma variável local em vez de uma propriedade e tudo estaria ok, mas agora o som não funciona e eu não consigo entender o porquê. Em todos os tutoriais que encontrei para o AVAudioPlayer, uma propriedade é feita, mas ninguém explica por quê. Se isso não funcionar, que alternativas eu tenho para fazer sons que podem se sobrepor?

- (void)loadSound:(NSString *)sound ofType:(NSString *)type withDelegate:(BOOL)delegate {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:sound
                                     ofType:type]];

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
if (delegate) audioPlayer.delegate = self;
[audioPlayer prepareToPlay];

[audioPlayer play];
}

questionAnswers(2)

yourAnswerToTheQuestion