Uiimagepicker Для показа камеры
Привет всем, я пытаюсь сделать приложение для камеры. Я делаю это как
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
где сборщик является объектом контроллера UIimagepicker.
Но когда запускается код, приложение прекращает показ ошибки.
Завершение приложения из-за неотображенного исключения "NSInvalidArgumentException", причина: "Тип источника 1 недоступен"
Я использую это на симуляторе. Я знаю, что невозможно проверить камеру в симуляторе, но мы можем проверить это. Я думаю, это может быть потому, что камера недоступна, поэтому она заканчивается.
Но я видел приложение с тем же кодом, но оно работало на симуляторе, просто отображая вид камеры.
Просто помогите мне решить эту проблему. И еще, как я могу поместить свой пользовательский просмотр в камеру в этом приложении?
Ответы
Ответ 1
Вам нужно проверить, есть ли у камеры камера, прежде чем устанавливать тип sourcetype.
Ниже можно проверить, есть ли у камеры доступная камера.
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
}
Вы не можете проверить функциональность камеры с вашего симулятора. Вы можете назначить UIImagePickerControllerSourceTypePhotoLibrary
как testType для тестирования на симуляторе.
Ответ 2
Swift 2.2
if UIImagePickerController.isSourceTypeAvailable(.Camera) {
imagePicker.delegate = self
imagePicker.sourceType = .Camera
presentViewController(imagePicker, animated: true, completion: nil)
} else {
print("The device has no camera")
}
Альбом сохраненных фотографий
if UIImagePickerController.isSourceTypeAvailable(.SavedPhotosAlbum) {
imagePicker.delegate = self
imagePicker.sourceType = .SavedPhotosAlbum
imagePicker.allowsEditing = false
self.presentViewController(imagePicker, animated: true, completion: nil)
}
Ответ 3
Введите ниже код, в котором происходит исключение. Помните, что вам нужно реализовать navigationController
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIAlertController *alertView = [UIAlertController alertControllerWithTitle:@"ERROR" message:@"No Camera Avalible" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
[self dismissViewControllerAnimated:alertView completion:nil];
}];
[alertView addAction:ok];
[self.navigationController presentViewController:alertView animated:YES completion:nil];
}