Quando tento executar a parte de carregar imagem da biblioteca pelo emulador recebo este erro no console
[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}
ImagePicker
import UIKit
enum MenuOpcoes {
case camera
case biblioteca
}
protocol ImagePickerFotoSelecionada {
func imagePickerFotoSelecionada(_ foto:UIImage)
}
class ImagePicker: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
// MARK: - Atributos
var delegate:ImagePickerFotoSelecionada?
// MARK: - Métodos
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let foto = info[UIImagePickerControllerOriginalImage] as? UIImage {
delegate?.imagePickerFotoSelecionada(foto)
}
picker.dismiss(animated: true, completion: nil)
}
func menuDeOpcoes(completion:@escaping(_ opcao:MenuOpcoes) -> Void) -> UIAlertController {
let menu = UIAlertController(title: "Atenção", message: "escolha uma das opções abaixo", preferredStyle: .actionSheet)
let camera = UIAlertAction(title: "tirar foto", style: .default) { (acao) in
completion(.camera)
}
menu.addAction(camera)
let biblioteca = UIAlertAction(title: "biblioteca", style: .default) { (acao) in
completion(.biblioteca)
}
menu.addAction(biblioteca)
let cancelar = UIAlertAction(title: "cancelar", style: .cancel, handler: nil)
menu.addAction(cancelar)
return menu
}
}
AlunoViewController
// MARK: - Métodos
func setup() {
imagePicker.delegate = self as? ImagePickerFotoSelecionada
}
func arredondaView() {
self.viewImagemAluno.layer.cornerRadius = self.viewImagemAluno.frame.width / 2
self.viewImagemAluno.layer.borderWidth = 1
self.viewImagemAluno.layer.borderColor = UIColor.lightGray.cgColor
}
@objc func aumentarScrollView(_ notification:Notification) {
self.scrollViewPrincipal.contentSize = CGSize(width: self.scrollViewPrincipal.frame.width, height: self.scrollViewPrincipal.frame.height + self.scrollViewPrincipal.frame.height/2)
}
func mostrarMultimidia(_ opcao:MenuOpcoes) {
let multimidia = UIImagePickerController()
multimidia.delegate = imagePicker
if opcao == .camera && UIImagePickerController.isSourceTypeAvailable(.camera) {
multimidia.sourceType = .camera
}
else {
multimidia.sourceType = .photoLibrary
}
self.present(multimidia, animated: true, completion: nil)
}
// MARK: - Delegate
func imagePickerFotoSelecionada(_ foto: UIImage) {
imageAluno.image = foto
}
// MARK: - IBActions
@IBAction func buttonFoto(_ sender: UIButton) {
let menu = ImagePicker().menuDeOpcoes { (opcao) in
self.mostrarMultimidia(opcao)
}
present(menu, animated: true, completion: nil)
}