【发布时间】:2018-10-11 16:00:49
【问题描述】:
当我通过 UIImagePickerController 选择图像时,我在 xCode 中得到以下输出:
发现扩展时遇到[discovery] 错误:Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}
这是我的代码:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
imagePicked = image
dismiss(animated: true, completion: nil)
performSegue(withIdentifier: "showImage", sender: self)
}
ViewController 类的声明应该是这样的:
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
let imagePickerController = UIImagePickerController()
var imagePicked = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
imagePickerController.delegate = self
}
我用一个按钮打开ImagePicker:
@IBAction func chooseImageBtn(_ sender: Any) {
imagePickerController.sourceType = .photoLibrary
self.present(imagePickerController, animated: true, completion: nil)
}
当我在模拟器中启动应用程序时,我可以单击按钮,然后选择一个图像,但随后选择器关闭,并且此消息显示在 Xcode 中:
2018-05-01 16:50:01.214450+0200 Awesome Name[57575:12752181] [MC] 从私人有效用户设置中读取。
2018-05-01 16:50:03.740711+0200 Awesome Name[57575:12752241] [发现] 发现扩展时遇到的错误:错误域 = PlugInKit 代码 = 13“查询已取消”用户信息 = {NSLocalizedDescription = 查询取消}
我已经做了一些研究,但没有任何效果。 ImagePicker 的代理设置为self,我也尝试在func imagePickerController(_ picker: 之前添加@objc,但这并没有解决问题。
我还能尝试什么来显示所选图像?
【问题讨论】:
-
您是否向
PHPhotoLibrary.requestAuthorization请求了照片库的权限? -
@Kamran 我已将具有值的
Privacy - Photo Library Usage Description键添加到我的 info.plist -
是的,但您还必须在访问之前调用授权。你可以在这里查看如何做到这一点stackoverflow.com/questions/44465904
-
我实现了 requestAuthorization 方法,现在它要求访问照片。单击确定后,ImagePicker 再次打开,它仍然产生与我的问题相同的输出,并且没有任何反应
标签: ios swift uiimagepickercontroller