SwiftUI 将图像保存到 macOS Catalyst

SwiftUI Saving Image to macOS Catalyst

我正在尝试使用以下代码在 macOS Catalyst 应用程序上保存图像。它取自 SwiftUI Catalyst App in macOS computer - Which path should I use to save an image in my Mac local disk?

但是我收到错误 "The file "abstract-1.jpg" doesn't exist."

我的 Assets.xcassets 文件夹中有图像 abstract-1,所以我不确定为什么没有看到这个保存操作了吗?我也试过只使用 item.name 而不附加 .jpg 但它会产生相同的错误。有任何想法吗?谢谢!

Button(action: {
                                        let fileURL = URL(fileURLWithPath: self.pathURL, isDirectory: true)
                                        let nameImage = item.name + ".jpg"
                                        let fileURLwithName = fileURL.appendingPathComponent(nameImage)
                                        let imageData = UIImage(named: item.name)?.jpegData(compressionQuality: 1)
                                        do {
                                            try imageData!.write(to: fileURLwithName)
                                        } catch {
                                            print("** saveImageData error: \(error.localizedDescription)")
                                        }
                                    }) {
                                            Label("Save to Pictures Directory", systemImage: "square.and.arrow.down")
                                        }

原来我需要做两件事:

  1. 不要在我的 pathURL 中使用类似 ~/Pictures 的内容。这需要像 @State private var pathURL = "/Users/jimbob/Desktop/"
  2. 这样明确声明
  3. 在 appname.entitlements
  4. 中将 App Sandbox 更改为 NO

现在尝试获取用户的主目录路径,或者弹出一个 'save location' 对话框。