Jan*_*nis 5 image image-conversion nsdata swiftui
我正在构建一个简单的 CoreData 应用程序。在某一时刻,用户可以使用 CoreData 以 NSData 格式上传和存储图像。保存 ManagedObjectContext 的工作方式如下:
let item = Item(context: self.managedObjectContext)
item.theImage = selectedImageFromPicker.pngData() as NSData?
//saving the MOC
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试检索图像时,我面临一系列问题。
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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我很确定用包含数据的 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())
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1741 次 |
| 最近记录: |