AVAudioPlayer - вы должны создать свойство для его работы? (Xcode)

Это код, который я сейчас использую, и он не работает (ничего не происходит, когда я нажимаю кнопку, вызывающую этот метод). Раньше у меня было свойство для audioPlayer, и оно работало (очевидно, что все перечисленные ниже audioPlayer были self.audioPlayer). Проблема заключалась в том, что когда я пытался воспроизвести звук дважды, он заканчивал воспроизведение первого звука.

Это не хорошо, потому что я делаю деку и хочу, чтобы звуки могли перекрываться. Я думал, что мог бы просто сделать audioPlayer локальной переменной вместо свойства, и все было бы в порядке, но теперь звук не работает вообще, и я не могу понять, почему. Во всех учебных пособиях, которые я нашел для AVAudioPlayer, создается свойство, но никто не объясняет почему. Если это не может работать, какие у меня есть альтернативы, чтобы издавать звуки, которые могут перекрываться?

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

Ответы на вопрос(2)

Ваш ответ на вопрос