К вашему сведению, прилагаю официальный ответ от Apple.
Это продолжение идентификатора ошибки # 13201137.
Инжиниринг установил, что эта проблема ведет себя как задумано, основываясь на следующей информации:
Есть несколько проблем с включенным кодом:
1) AVCaptureSession не имеет входов.
2) AVCaptureSession не имеет выходов.
Без хотя бы одного входа (добавленного в сеанс с помощью [AVCaptureSession addInput:]) и совместимого вывода (добавленного с помощью [AVCaptureSession addOutput:]) активных подключений не будет, поэтому сеанс фактически не запустится в устройстве ввода. В этом нет необходимости - нет выходов, на которые можно доставлять данные с камеры.
3) Класс JAViewController предполагает, что свойство -formatDescription видеопорта станет ненулевым, как только вернется [AVCaptureSession startRunning].
Нет гарантии, что описание формата будет обновлено в соответствии с новым форматом камеры, как только startRunning вернется. -startRunning запускает камеру и возвращается, когда она полностью запущена и работает, но не ожидает, когда видеокадры будут активно проходить через конвейер захвата, то есть когда будет обновлено описание формата.
Вы просто слишком быстро запрашиваете. Если бы вы подождали еще несколько миллисекунд, это было бы там. Но правильный способ сделать это - прослушать AVCaptureInputPortFormatDescriptionDidChangeNotification.
4) Ваш класс JAViewController создает объект PVCameraInfo в retrieveCameraInfo: и задает ему вопрос, затем позволяет ему выпасть из области видимости, где он освобождается и освобождается.
Следовательно, сеанс не может быть достаточно длинным для выполнения вашего запроса измерений. Вы слишком быстро останавливаете камеру.
Мы считаем эту проблему закрытой. Если у вас есть какие-либо вопросы или сомнения по поводу этой проблемы, обновите отчет напрямую (http://bugreport.apple.com).
Спасибо, что нашли время сообщить нам об этой проблеме.
С наилучшими пожеланиями,
Команда разработчиков отчетов об ошибках
Отношения Apple с разработчиками по всему миру