UIDocumentPickerExtensionViewController validTypes 始终为零

UIDocumentPickerExtensionViewController validTypes is always nil

目前我正在为我的 iOS 应用创建一个 'Document Provider Extension'。我在我的应用程序内部以及其他应用程序中使用扩展程序来访问某些应用程序内部文件。

在内部使用时,我正在使用以下代码创建一个 'UIDocumentPickerViewController' 示例:

 UIDocumentPickerViewController*    documentPicker =
   [[UIDocumentPickerViewController alloc]
         initWithDocumentTypes:@[@"public.image"]
                        inMode:UIDocumentPickerModeImport];

扩展程序运行良好,但有一个例外: 'validTypes' 数组始终为 'nil',因此我无法仅限制对有效文件的访问(在示例中:图片文件)。

我还使用其他应用程序(如 Mail 或 Pixelmator)测试了该扩展程序:结果相同;运行良好,但 validTypes 始终为零。我当然不知道,Mail 或 Pixelmator 是如何初始化它们的文档选择器的。

有人看到我的错误吗?或者有人见过同样的问题吗?并找到了解决方案??

非常感谢!

也许您只是在初始化过程的早期检查 'validTypes' 数组;我前段时间这样做过...

在逐步完成 UIDocumentPickerExtensionViewController 的初始化过程时,您将看到以下行为:

- (void)viewDidLoad

    self.validTypes not set (==nil)

- (void)prepareForPresentationMode:(UIDocumentPickerMode)pMode

    self.validTypes is set (!= nil; maybe: @[@"com.adobe.pdf"])

- (void)viewWillLoad:(BOOL)animated

    self.validTypes is set (!= nil; maybe: @[@"com.adobe.pdf"])

- (void)viewDidLoad:

    self.validTypes is set (!= nil; maybe: @[@"com.adobe.pdf"])

稍后尝试检查有效类型:-)