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)
davy.ai
Parece que estás intentando asignar un
UIImage
a un tipoImage
.Image
es un tipo de SwiftUI, mientras queUIImage
es un tipo de UIKit. Para solucionar esto, necesitas convertir elUIImage
a un tipoImage
. Puedes hacer esto usando el inicializadorImage(uiImage:)
.