Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Mac Catalyst的可选UIActivityViewController保存对话框或UIDocumentPickerViewController的解决方案引发错误代码260_Ios_Swift_Uiactivityviewcontroller_Uidocumentpickerviewcontroller_Mac Catalyst - Fatal编程技术网

Ios Mac Catalyst的可选UIActivityViewController保存对话框或UIDocumentPickerViewController的解决方案引发错误代码260

Ios Mac Catalyst的可选UIActivityViewController保存对话框或UIDocumentPickerViewController的解决方案引发错误代码260,ios,swift,uiactivityviewcontroller,uidocumentpickerviewcontroller,mac-catalyst,Ios,Swift,Uiactivityviewcontroller,Uidocumentpickerviewcontroller,Mac Catalyst,我正在寻找Mac Catalyst应用程序的UIActivityViewController之外的其他导出菜单。虽然这样做有效,但用户无法选择要保存文件的位置(该文件是列表中所有项目的JSON文件),我希望用户能够选择要保存JSON的目录。我尝试了以下代码,但当您尝试保存文件时,它给出了错误“error Domain=nscocaerordomain code=260”“文件名.json”“无法打开,因为没有这样的文件”“” 守则: let fileManager = FileManager.d

我正在寻找Mac Catalyst应用程序的UIActivityViewController之外的其他导出菜单。虽然这样做有效,但用户无法选择要保存文件的位置(该文件是列表中所有项目的JSON文件),我希望用户能够选择要保存JSON的目录。我尝试了以下代码,但当您尝试保存文件时,它给出了错误“error Domain=nscocaerordomain code=260”“文件名.json”“无法打开,因为没有这样的文件”“”

守则:

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")
}

我尝试过用谷歌搜索其他方法,但我找不到任何能在MacCatalyst上工作的方法。我知道你可以做到这一点,因为我见过其他应用程序和示例可以做到这一点,但对我来说没有任何效果。那么,可能的替代方法或解决方案是什么呢?

问题是,在用户有机会选择要保存的文件之前,您正在删除要保存的文件

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


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

非常感谢!这解决了我的问题。