Невозможно открыть диафрагму камеры iOS 5 - PullRequest
2 голосов
/ 23 февраля 2012

У меня есть пользовательский экран, который использует интерфейс камеры. Время от времени экран «зависает» с закрытой радужкой. Единственный способ выйти из этого заблокированного состояния - выйти из приложения.

Что может заставить диафрагму камеры оставаться в закрытом положении, как это?

1 Ответ

1 голос
/ 15 мая 2012

Обычно это происходит при возникновении проблем с памятью.Как в случае нехватки памяти, так и в некоторых случаях инициализация UICameraPickerController освобождается при неправильном обращении к ней.

Лучший способ уменьшить или избежать этого - это когда вы пытаетесь получить к нему доступ во время выделения иинициализируйте его, и когда вы пытаетесь переместиться из вида камеры, просто отмените его.

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


По сути, я беру одно свойство, объявленное в файле .h , следующим образом:

@property (nonatomic, strong) UIImagePickerController *imagePicker;

Затем в файле .m его синтезируют., при необходимости, для меня на нажатие кнопки «Сфотографировать».Я использую следующую кодировку, чтобы показать контроллер средства выбора изображений.

if(self.imagePicker == nil || self.imagePicker == NULL)
    imagePicker = [[UIImagePickerController alloc]init];
<Then put the code for use of picker.>

А затем при получении изображения в методе делегирования средства выбора imagePickerController:didFinishPickingMediaWithInfo после сохранения изображения в правильном свойстве или iVar используйте следующеекод для освобождения экземпляра imagePicker.

self.imagePicker = nil;

Это решит проблему для меня.Пусть это также поможет вам решить и вашу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...