UIDocumentMenuViewController initWithDocumentTypes:inMode: 只能在 Import 或 Open 模式下调用

Joh*_*rug 2 crash uikit ios icloud-documents

在我的 iOS 应用程序中,我打开了一个UIDocumentMenuViewController. 当我使用UIDocumentPickerModeImport模式调用它时,一切正常(我的所有 iCloud 权限都已设置)。

UIDocumentPickerModeExportToService但是,当我使用 调用它时,应用程序崩溃并出现以下错误:

断言失败 -[UIDocumentMenuViewController initWithDocumentTypes:inMode:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3600.6.22/UIDocumentMenuViewController.m:71

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[UIDocumentMenuViewController initWithDocumentTypes:inMode:] 只能以导入或打开模式调用”

我究竟做错了什么?为什么只能在导入或打开模式下调用?

我的代码:

UIDocumentMenuViewController *exportMenu = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[@"public.image"]
                                                                                                    inMode:UIDocumentPickerModeExportToService];
    
exportMenu.delegate = self;
[self presentViewController:exportMenu animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

这发生在模拟器和我测试过的两个设备上(都运行 iOS 10)。

任何帮助将不胜感激!

Joh*_*rug 6

我刚刚找到答案:想要导出时,您需要使用不同的 init 方法:initWithURL:inMode:

我希望在这种情况下例外会更有帮助:)