【问题标题】:Error: Cannot assign value of type UIImage? to Data?错误:无法分配 UIImage 类型的值?到数据?
【发布时间】:2020-07-18 20:53:37
【问题描述】:

我有一个返回 image 的 ImagePicker。 (Here供参考)。

但是,当尝试将其转换为要存储在 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 语句等。

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

【问题讨论】:

    标签: ios swift core-data swiftui uiimage


    【解决方案1】:

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

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

    【讨论】:

    • 运行返回无法将“UIImage”类型的值分配给“数据”类型。除了代码不起作用之外,item.image 是数据类型。我知道选择器返回一个 UIImage。我需要做的是将返回的 UIImage 转换为 Data 并将该 Data 分配给 item.image。
    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多