Я получаю эту ошибку только в iOS 7, и приложение вылетело. В iOS 6 я никогда не получаю никаких ошибок, только одно предупреждение о памяти при открытии камеры.
Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
Вот что я делаю.
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[imagePicker setAllowsEditing:YES];
[self presentModalViewController:imagePicker animated:YES];
Я пытался отложить presentModalViewController
, но все равно получаю то же сообщение. Через несколько секунд (7-10) приложение вылетело.
Эта ошибка присутствует только в iOS 7.
Кто-нибудь знает?
Ответы:
Проблема в iOS7 связана с переходами. Кажется, что если предыдущий переход не был завершен и вы запускаете новый, iOS7 портит представления, а iOS6, похоже, управляет им правильно.
Вы должны инициализировать свою камеру в вашем
UIViewController
только после того, как представление будет загружено и с таймаутом:и вот код инициализации
источник
Эта ошибка также обнаружилась у меня в проекте примера кода Apple PhotoPicker.
Я использовал Xcode версии 5.0 и iOS 7.0.3 на iPhone 4.
Действия по воспроизведению:
Загрузите образец проекта Apple PhotoPicker по адресу https://developer.apple.com/library/ios/samplecode/PhotoPicker/Introduction/Intro.html.
В APLViewController.m закомментируйте строку 125
//imagePickerController.showsCameraControls = NO;
В APLViewController.m закомментируйте строки 130-133
//[[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil];
// self.overlayView.frame = imagePickerController.cameraOverlayView.frame;
// imagePickerController.cameraOverlayView = self.overlayView;
// self.overlayView = nil;
Соберите и запустите приложение.
После запуска поверните устройство в альбомный режим.
Щелкните значок камеры, чтобы открыть UIImagePickerController в режиме камеры.
Просмотрите вывод консоли.
Консольный вывод
PhotoPicker [240: 60b] При создании снимка вида, который не был визуализирован, создается пустой снимок. Убедитесь, что ваше представление было визуализировано хотя бы один раз перед созданием моментального снимка или моментальным снимком после обновления экрана.
showCameraControls свойство
У меня проблема возникает, когда он имеет значение ДА (по умолчанию).
Установка этого параметра в NO устраняет сообщение.
Отчет об ошибке
Я только что отправил отчет об ошибке в Apple.
Я пробовал много предложений, которые были сделаны в разных сообщениях, но не нашел удовлетворительного обходного пути.
источник
У меня возникла проблема, когда я попытался представить вид камеры внутри всплывающего окна. Под iOS6 это не было проблемой, но в iOS7 я получил сообщение
также.
Однако после того, как я изменил представление камеры на полноэкранный режим, как описано в разделе « Съемка фотографий и фильмов, библиотека разработчика iOS», все снова пошло нормально, и сообщение больше не появлялось. Однако я должен был убедиться, что в зависимости от того, в каком режиме находится приложение (например, отображается вид с камеры или фотопленка), мне нужно было либо закрыть всплывающее окно, либо контроллер представления при каждом
- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker
вызове метода .источник
создать недвижимость
затем
Это должно решить проблему
источник
Я использовал этот код для решения проблемы:
источник
У меня такая же проблема, и я нашел решение. Думаю, эта ошибка связана с ориентацией вашего приложения. Мое приложение использует только альбомный режим, но UIImagePickerController использует портретный режим. Я добавляю блок try-catch в main.m и получаю настоящее исключение:
Как я решаю эту проблему:
1) Еще раз проверьте ориентацию устройства в Target-> General или в файле .plist: Поддерживаемые ориентации интерфейса: альбомная слева, альбомная справа.
2) Добавьте в AppDelegate.m:
После этого шага UIImagePickerController работает правильно, но мои контроллеры представления можно повернуть в портретный режим. Итак, чтобы решить это:
3) Создайте категорию для UINavigationController (поддерживаемыеInterfaceOrientations перемещены из UIViewController в UINavigationController в iOS6):
Это решение корректно работает на iOS 6.0, 6.1, 7.0. Надеюсь это поможет.
источник
Я получаю эту ошибку при создании приложения с помощью iOS SDK 6.1, целевого развертывания iOS 6.1 и запуска приложения на iPhone под управлением iOS 7. Приложение не вылетает, но реализация
UIViewController shouldAutorotate
метода помогает мне удалить сообщение об ошибке.источник
У меня была такая же проблема, когда я пытался изменить демонстрационное приложение, которое поставляется с Avirary SDK , в демонстрационном приложении оно может редактировать только фотографию, выбранную из камеры. Чтобы попытаться отредактировать фотографию путем захвата с камеры, я сначала добавил следующий код в файл UIViewcontroller.m:
Затем, когда я запустил приложение, произошла ошибка:
Чтобы устранить ошибку, измените делегат UIImagePicker в файле UIViewContooler.m, как показано ниже:
Потом ошибка исчезла и приложение работает!
источник
Попробуйте это, используйте
и функция
заменить.
[self presentModalViewController:imagePicker animated:YES];
и, конечно же, makeimagePicker
как глобальная переменная.источник
Вот что исправило это для меня в моем приложении, ymmv
во-первых, это iPhone - приложение для iPad
в appname-Info.plist. в Поддерживаемых ориентациях интерфейса (iPad) показал 4 ориентации.
в Поддерживаемых ориентациях интерфейса показаны 3 ориентации. Я добавил четвертый и запустил приложение, без отладки.
Надеюсь это поможет.
источник
Я только что столкнулся с той же проблемой. В моем случае проблема заключалась в том, что у меня был код, не относящийся к ARC, и я перенес его на ARC. Когда я выполнял миграцию, у меня не было сильных ссылок на,
UIImagePickerController
и это было причиной сбоя.Надеюсь, поможет :)
источник
У меня была такая же проблема в iOS 8, но доступ к камере был отключен в настройках -> Конфиденциальность для моего приложения. Просто включил его, и он заработал.
источник
Я потратил много времени, пытаясь найти решение, и, к удивлению, я нашел его в конце, и это было просто очень забавно, когда я его обнаружил.
Вот что вы сделаете, чтобы получить выбранное изображение и продолжить работу :)
Да, чтобы решить эту проблему, вам нужно просто закрыть средство выбора в обычном режиме, поскольку кажется, что это сообщение: «Снимок вида, который не был визуализирован, приводит к пустому снимку. Убедитесь, что ваше представление было визуализировано хотя бы один раз перед созданием снимка или снимком после обновления экрана ". останавливает отклик средства выбора, но вы можете закрыть его и получить изображение в обычном режиме.
источник
В моем случае это было связано с изменением макета: VC, представляющий,
UIImagePickerViewController
имеет скрытую строку состояния, ноUIImagePickerViewController
не имеет.Итак, я решил, что он скрывает строку состояния,
UIImagePickerViewController
как показано в этом ответе .источник
Не отвечая напрямую на ваш вопрос, но вы упомянули, что у вас есть предупреждение о памяти, вы можете хранить необработанное изображение в свойстве, что может привести к предупреждению о памяти. Это связано с тем, что необработанное изображение занимает примерно 30 МБ памяти. Я заметил подобное предупреждение памяти при тестировании приложений на iOS6, которые были на iPhone 4 серии. Я все еще получал это предупреждение, когда устройства были обновлены до iOS7. При тестировании на iPhone 5 серии на iOS7 предупреждение о памяти не отображается.
источник
Изменение
к
исправил проблему для меня.
источник