Как обнаружить два разных разрешения

У меня есть код разрешения обнаружения для первого микрофона, а затем распознавание речи для открытия нового представления. Но приведенный ниже код создал ошибку типа «Это приложение модифицирует механизм автомакета из фонового потока после того, как доступ к механизму был получен из основного потока. Это может привести к повреждению механизма и странным сбоям».

Может ли кто-нибудь иметь какие-либо идеи?

 if (@available(iOS 10.0, *)) {
    [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
        if (granted) {
         //   [self detechUserSpeechPermission];
       //     [self configureSpeechToTextView];
            [SFSpeechRecognizer requestAuthorization:^(SFSpeechRecognizerAuthorizationStatus status) {
                switch (status) {
                    case SFSpeechRecognizerAuthorizationStatusAuthorized:
                        [self configureSpeechToTextView];
                        break;
                    case SFSpeechRecognizerAuthorizationStatusDenied:
                        [self warnUserForSpeechPermission];
                        break;
                    case SFSpeechRecognizerAuthorizationStatusNotDetermined:
                        [self warnUserForSpeechPermission];
                        break;
                    case SFSpeechRecognizerAuthorizationStatusRestricted:
                        [self warnUserForSpeechPermission];
                        break;
                    default: break;
                } }];
        }
        else {
            [self warnUserForMicrophonePermission];
        }
    }];
} else {
    NSLog(@"low ios version");
}

person Begüm Kırkgöz Demirci    schedule 01.03.2018    source источник
comment
Я сомневаюсь, что ваша ошибка имеет какое-либо отношение к коду, который вы нам показываете, поскольку он вообще не имеет ничего общего с AutoLayout.   -  person JillevdW    schedule 01.03.2018


Ответы (1)


попробуйте вызвать методы в основном потоке, как показано ниже:

dispatch_async(dispatch_get_main_queue(), ^{
  [self configureSpeechToTextView];
});
person Moayad Al kouz    schedule 01.03.2018