调用相册UIImagePickerController报错 Error Domain=PlugInKit Code=13 的处理

Posted 追夢秋陽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用相册UIImagePickerController报错 Error Domain=PlugInKit Code=13 的处理相关的知识,希望对你有一定的参考价值。

      最近将Swift4 升级到最新的 Swift4.2,发现了一些问题,其中就包括 调用相册及拍照 UIImagePickerControllerDelegate 委托不执行,导致获取不到选中的图片并且报如下错误:

[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo=NSLocalizedDescription=query cancelled

 应改写为如下方式,方可正常执行的,并且不会报错


//正确的写法
//MARK: - UIImagePickerControllerDelegate、UINavigationControllerDelegate
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) 
        
        //UIImagePickerControllerOriginalImage  原始图像
        //UIImagePickerControllerEditedImage    编辑后的图片(开启编辑该对象才存在)
        
        self.dismiss(animated: true, completion: 
            var img:UIImage? = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
            if picker.allowsEditing 
                img = info[UIImagePickerController.InfoKey.editedImage] as? UIImage
            
            
            self._image = img
        )

另外,补充一点在Swift4.2中,将UIImage 转换为 Data 类型,具体参考如下:

//compressionQuality:参数为压缩率 取值 0-1 的浮点数
//image:UIImage 对象
let imageData:Data? = UIImage.jpegData(image!)(compressionQuality: K_TAILOR_COMPRESSION_RATIO)!


//类似的还有
let imageData:Data? = UIImage.pngData(image!)()

 

以上是关于调用相册UIImagePickerController报错 Error Domain=PlugInKit Code=13 的处理的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-iOS调用相机调用相册将图片保存到本地相册

html5 如何调用手机相册,进行上传照片

如何调用android的拍照或本地相册选取,然后再实现相片上传服务器

H5调用手机相机和相册,并且将图片转化为base64的格式

调用相册

安卓怎么根据图片路径调用系统相册查看这个图片?