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

UIDocumentMenuViewController initWithDocumentTypes:inMode: can only be called with mode Import or Open

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

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

Assertion failure in -[UIDocumentMenuViewController initWithDocumentTypes:inMode:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3600.6.22/UIDocumentMenuViewController.m:71

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIDocumentMenuViewController initWithDocumentTypes:inMode:] can only be called with mode Import or Open'

我做错了什么?为什么只能用 Import 或 Open 模式调用?

我的代码:

UIDocumentMenuViewController *exportMenu = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[@"public.image"]
                                                                                                    inMode:UIDocumentPickerModeExportToService];
    
exportMenu.delegate = self;
[self presentViewController:exportMenu animated:YES completion:nil];

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

任何帮助将不胜感激!

我刚找到答案:当想要 export 时,您需要使用不同的初始化方法:initWithURL:inMode:

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