0

目前我正在为我的 iOS 应用程序创建一个“文档提供程序扩展”。我正在使用我的应用程序内部以及其他应用程序中的扩展程序来访问某些应用程序内部文件。

在内部使用它时,我正在创建一个“UIDocumentPickerViewController”,例如使用以下代码:

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

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

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

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

非常感谢!

4

1 回答 1

1

也许您只是在初始化过程的早期检查“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"])

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

于 2016-04-24T13:23:10.180 回答