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

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

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


该扩展运行正常,但有一个例外:
“ validTypes”数组始终为“ nil”,因此我不能仅将访问权限限制为有效文件(在示例中:图像文件)。

我还用其他应用程序(例如Mail或Pixelmator)测试了该扩展程序:结果相同;运行正常,但validTypes始终为nil。当然,我不知道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"])


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

关于ios - UIDocumentPickerExtensionViewController validTypes始终为nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36088573/

10-11 07:47