Я взял кодовую базу, в которой есть тонкие недостатки - аудиоплеер отключается, неблокированные сбои, странное поведение и т.д.
Я нашел способ спровоцировать один случай проблемы и отследил его до следующего фрагмента кода:
- (void)playNextArrayObject {
NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:[[soundsToPlay objectAtIndex:count] description]
ofType:@"mp3"]];
self.audioPlayer = nil;
self.audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:soundURL error:nil];
self.audioPlayer.delegate = self;
AudioSessionSetActive(YES);
[audioPlayer play];
}
Когда я закомментирую 2-ю строку (ноль) и добавлю выпуск в конец, эта проблема прекращается.
[self.audioPlayer release];
- Куда мне идти отсюда?
- Nils одинаково используются во всем коде (и могут вызывать похожие проблемы) - есть ли безопасный способ их удалить?
- Я новичок в управлении памятью - как я могу отличить правильное использование нуля от неправильного использования нуля?