首页 > 解决方案 > 错误:无法分配 UIImage 类型的值?到数据?

问题描述

我有一个 ImagePicker,它返回一个image. (这里供参考)。

但是,当尝试将其转换为数据以存储在 Core Data 中时,我会收到此错误:Cannot assign value of type UIImage? to Data?即使在尝试解开它们之后,如果Cannot assign value of type UIImage to Data没有选项,我也会收到相同的错误。

这是有问题的代码:

struct AddItemView: View {
    @Environment(\.managedObjectContext) var moc
    @Environment (\.presentationMode) var presentationMode
    
    @State var showImagePicker: Bool = false
                    
    var body: some View {
        NavigationView {
            let item = Item(context: moc) // contains an optional 'image' property with a type of 'Data'
            
            VStack {
                ...
            }
            .sheet(isPresented: $showImagePicker) {
                ImagePickerView(sourceType: .photoLibrary) { image in
                    item.image = UIImage(data: image!)!
                }
            }
            
        }
    }
}

*我已经尝试以各种可以想象的方式展开,使用 try?、guard 语句等。

(澄清一下,我正在尝试将UIImage返回的转换ImagePickerData并将其分配Data给 item.image)

标签: iosswiftcore-dataswiftuiuiimage

解决方案


图像不是ImagePickerView返回的数据......它的 UIImage 直接分配它

ImagePickerView(sourceType: .photoLibrary) { image in
                    item.image = image.pngData() // or .jpegData()
                }

推荐阅读