Сбой: поток уведомлений AVAudioSession EXC_BAD_ACCESS - PullRequest
0 голосов
/ 27 августа 2018

Я получаю сбой EXC_BAD_ACCESS KERN_INVALID_ADDRESS. Это проблема AVFAudio SDK или я пропустил что-то, что нужно обработать?

Для получения дополнительной информации, пожалуйста, взгляните на скриншот.

Я инициализировал AVAudioSession, вызвав:

- (BOOL)prepareAudioSession {

BOOL success = [[AVAudioSession sharedInstance] setActive:NO error: nil];
if (!success) {
    NSLog(@"deactivationError");
}

success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil];
if (!success) {
    NSLog(@"setCategoryError");
}

success = [[AVAudioSession sharedInstance] setActive:YES error: nil];
if (!success) {
   NSLog(@"activationError");
}

return success;

}   

и затем я вызываю [[AVAudioSession sharedInstance] availableInputs], чтобы проверить количество устройств, подключенных по Bluetooth

1 Ответ

0 голосов
/ 28 августа 2018

Согласно трассировке стека, похоже, что вы подписываетесь на изменения KVO или некоторые уведомления, такие как AVAudioSessionRouteChangeNotification или MPVolumeViewWirelessRouteActiveDidChangeNotification, но ваш объект (слушатель) освобождается без removeObserver / unsubscribeing.

В iOS 9 или более поздней версии больше не требуется, чтобы наблюдатель NSNotificationCenter отменял свою регистрацию при освобождении. Поэтому я бы порекомендовал оформить заказ КВО.

...