gpt4 book ai didi

ios - Mac Catalyst 的替代 UIActivityViewController 保存对话框或 UIDocumentPickerViewController 抛出错误代码 260 的解决方案

转载 作者:行者123 更新时间:2023-11-28 05:36:13 30 4
gpt4 key购买 nike

我正在为 Mac Catalyst 应用程序寻找除 UIActivityViewController 之外的替代导出菜单。虽然这有效,但用户无法选择他们想要保存文件的位置(该文件是列表中所有项目的 JSON 文件),我希望用户能够选择他们想要保存 JSON 的目录到。我尝试了以下代码,但在您尝试保存文件时出现错误“Error Domain=NSCocoaErrorDomain Code=260 'The file 'name.json' couldn't be opened because there is no such file'”。

代码:

let fileManager = FileManager.default

do {
let fileURL2 = fileManager.temporaryDirectory.appendingPathComponent("\(detailedList.lname!).json")

// Write the data out into the file
try jsonData.write(to: fileURL2)

// Present the save controller. We've set it to `exportToService` in order
// to export the data -- OLD COMMENT
let controller = UIDocumentPickerViewController(url: fileURL2, in: UIDocumentPickerMode.exportToService)
present(controller, animated: true) {
// Once we're done, delete the temporary file
try? fileManager.removeItem(at: fileURL2)
}
} catch {
print("error creating file")
}

我已经尝试通过谷歌搜索其他方式或方式来实现它,但我找不到任何可以在 Mac Catalyst 上运行的东西。我知道你可以做到这一点,因为我已经看到其他应用程序和示例可以做到这一点,但对我来说没有任何效果。那么执行此操作的可能替代方法或此代码的解决方案是什么?

最佳答案

问题是您在用户有机会选择他们想要保存文件的位置之前就删除了您想要保存的文件。

调用 try 的完成处理程序?一旦显示文档选择器,就会调用 fileManager.removeItem(at: fileURL2)

正确的解决方案是在 UIDocumentPickerDelegate 方法中删除文件,而不是在显示选择器时。

关于ios - Mac Catalyst 的替代 UIActivityViewController 保存对话框或 UIDocumentPickerViewController 抛出错误代码 260 的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58563485/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com