Xcode 8 UIImagePickerController 冻结

Xcode 8 UIImagePickerController frozen

我刚 运行 遇到这个问题。我可以像往常一样调用 UIImagePickerController 但是当我选择图像(拍摄照片或照片库)时,"use photo" 按钮和 "retake" 按钮不起作用,并且 UI 只是冻结。

我进行了一些调试,发现代码无法进入委托方法。

我没有更改任何关于 UIImagePickerController 的代码。之前一切正常。所以我想知道为什么会发生这种情况以及如何修复此错误?

非常感谢!

这是代码:

 UIImagePickerController * imgPicker = [[UIImagePickerController alloc] init];
 [imgPicker setDelegate:self]
 [imgPicker setAllowsEditing:YES];
 [imgPicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
 [self.navigationController presentViewController:imgPicker animated:YES completion:^{

            }];

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo {

    [self dismissViewControllerAnimated:YES completion:^{
    }];
}

我认为这个 out.This 是由于使用了错误的委托 method.the 造成的,我使用的委托 DEPRECATED.

我们应该用这个

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info;

并且图片信息在info中dictionary.You可以这样获取图片

UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

从 xcode 8 到 ios 10 您必须向 info.plist 添加一些键值才能使用 UIImagepicker Controller

访问照片

关键:隐私 - 照片库使用说明
值:此应用需要访问照片库