es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede convertir el tipo de valor ‘UIImage.Type’ al tipo de argumento esperado ‘UIImage’.

¿Por qué obtengo este error? “No se puede convertir el valor del tipo ‘UIImage.Type’ al tipo de argumento esperado ‘UIImage'”.

¡No lo sé! He revisado el código una y otra vez, ¡pero no hay suerte!

Estoy usando la versión 13.1 de Xcode y swiftui.

¿Cómo puedo resolver esto?

import Foundation
import SwiftUI

struct ImagePicker: UIViewControllerRepresentable {
@Binding var pickedImage: Image
@Binding var showImagePicker: Bool
@Binding var ImageData: Data
func makeCoordinator() -> ImagePicker.Coordinator {
Coordinator(parent: self)
}
func makeUIViewController(context: Context) -> UIImagePickerController {
let picker = UIImagePickerController()
picker.delegate = context.coordinator
picker.allowsEditing = true
return picker
}
func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) {

} 
class Coordinator: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 
    var parent: ImagePicker 
    init(parent: ImagePicker) { 
        self.parent = parent 
    } 
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) { 
        let uiImage = info[.editedImage] as! UIImage 
        parent.pickedImage = Image(uiImage: uiImage) 
        if let mediaData = uiImage.jpegData(compressionQuality: 0.5) { 
            parent.ImageData = mediaData 
        } 
        parent.showImagePicker = false 
    } 
} 

}

Obtengo el error aquí

parent.pickedImage = Image(uiImage: uiImage)

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando asignar un UIImage a un tipo Image. Image es un tipo de SwiftUI, mientras que UIImage es un tipo de UIKit. Para solucionar esto, necesitas convertir el UIImage a un tipo Image. Puedes hacer esto usando el inicializador Image(uiImage:).

    parent.pickedImage = Image(uiImage: uiImage)
    

Comments are closed.