image - Coredata 图像转换 swiftUI

标签 image swiftui nsdata image-conversion

我正在构建一个简单的 CoreData 应用程序。在某一时刻,用户可以使用 CoreData 以 NSData 格式上传和存储图像。保存 managedobjectcontext 的工作方式如下:

    let item = Item(context: self.managedObjectContext)

    item.theImage = selectedImageFromPicker.pngData() as NSData?

    //saving the MOC

现在,当我尝试检索图像时,我面临一系列问题。
    struct Box {

      var id: Int

      let title: String

      let image: NSData?

    }



    struct BoxView: View {

      let box: Box

      let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

      var item: Item


      var body: some View {

        VStack {


        Image(uiImage: UIImage(data: box.image) as! Data)

        .resizable()
            .frame(width: 120, height: 120, alignment: .center)
            .aspectRatio(contentMode: .fill)

      }

      }

    }

我很确定用包含数据的 UIImage 显示 Image() 在这里是错误的,但我无法弄清楚如何将数据转换为 Image() 方法显示的格式。
不幸的是,Xcode 也不会帮助处理它的错误消息,而是将其归咎于 VStack。

也许其他人之前遇到过这种情况并且可以提供帮助,因为我没有在网上找到有关此特定问题的任何信息。

最佳答案

据我了解,您需要类似以下内容(为了简短和简单,我删除了与图像无关的代码)

var body: some View {
    VStack {
        image
    }
}

var image: some View {
    if let nsData = box.image, let uiImage = UIImage(data: nsData as Data) {
        return AnyView(Image(uiImage: uiImage)
            .resizable()
            .frame(width: 120, height: 120, alignment: .center)
            .aspectRatio(contentMode: .fill))
        }
    return AnyView(EmptyView())
}

关于image - Coredata 图像转换 swiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919307/

相关文章:

swift - 如何将完成 block 添加到 SwiftUI .alert(isPresented)

ios - 是否可以从 Objective-c 中的服务器下载完整目录

iphone - 从/到字符串保存和加载 UIImage

css - 当浏览器宽度改变时自动调整 div 中两个图像的大小

javascript - 按钮单击以替换图像

ios - 如何在现有的基于 Storyboard的项目中设置@EnvironmentObject?

ios - 为什么我能够访问 Core Data 中除图像属性之外的所有属性? (这是二进制数据?)

java - 如何让导入的图片短暂显示?

java - 找不到正确的图像路径

ios - SwiftUI,如何使背景颜色多次动画