我已经启用了限制,并且在iPad的设置中禁用了相机和FaceTime,在隐私标签中,我禁用了对我的应用程序的照片访问权限。
我正在使用以下代码打开相机和照片库,
//For camera
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
picker.allowsEditing = NO;
[self.view.window.rootViewController presentViewController:picker animated:YES completion:nil];
//For Photo library
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self;
picker.allowsEditing = NO;
[self.view.window.rootViewController presentViewController:picker animated:YES completion:nil];
打开照片库时,它会清楚地显示一条消息,表明访问被拒绝,可以在设置应用中更改。但是在打开相机时,应用程序崩溃抛出错误,
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Source type 1 not available'
*** First throw call stack:
(0x30584f4b 0x3ac566af 0x32f56d69 0x1141d9 0x32ee4d03 0x32d2c713 0x32d2c6b3 0x32d2c691 0x32d1811f 0x32d2c107 0x32d2bdd9 0x32d26e65 0x32cfc79d 0x32cfafa3 0x30550183 0x3054f653 0x3054de47 0x304b8c27 0x304b8a0b 0x3518c283 0x32d5c049 0xeff7d 0x3b15eab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
如何解决这个问题?
答案 0 :(得分:2)
您应该始终检查源类型是否可用:
来自Apple UIImagePickerController
doucmentatiom
验证设备是否能够从所需内容中挑选内容 资源。这样做是调用
isSourceTypeAvailable:
类方法, 提供UIImagePickerControllerSourceType
的常量 枚举。
检查源是否可用,如:
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary]) {
// UIImagePickerControllerSourceTypePhotoLibrary is available.
}