requestAccessForMediaType не запрашивает разрешения

Я заметил, что мое приложение не запрашивает разрешение на использование камеры. После некоторых экспериментов я понял, что выполнение кода, используемого для проверки прав, занимает очень много времени. Поэтому я подумал о том, чтобы эта часть моей viewdidload работала в последовательной очереди (синхронизация). Вынуждая остальных ждать завершения процесса аутентификации перед началом следующей строки. Но это на самом деле не работает. Строки начинаются по порядку, но не заканчиваются по порядку.

Странно то, что если я просто запрашиваю разрешение и ничего не делаю с ним, без завершение работы (как показано в коде ниже), тогда он действительно запускается во второй раз, когда я отлично запускаю его с завершением, хотя оно все еще не показывает предупреждение Пользователь. Может ли это быть потому, что для записи видео не нужно разрешение в Европе?avcapturedevice ref

Если я хочу, чтобы код выполнялся построчно, нужно ли использовать барьеры? или синхронизировать последовательные очереди или ??

AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { nil }())

Обновить:

Этот метод должен быть довольно надежным, но это не так. Возвращает true как должное, но 3 для rawValue (отказано)

func checkForAuthorizationStatus() {
        println("auth me")
        AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: {
            granted in
            if granted {
                println("granted: \(granted)")
                self.deviceAuthorized = true
                println("raw value: \(AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo).rawValue)")
            } else {
                self.deviceAuthorized = false
            }

        })
    }

Обновление 2: ответ в комментариях ниже. - Сброс настроек конфиденциальности на устройстве, чтобы получить запрос.

rawValue для авторизованного 3, а не 4