目前我正在为我的iOS应用程序创建一个"文档提供程序扩展"。我正在从我的应用程序内部以及其他应用程序使用该扩展程序来访问某些应用程序内部文件。
在内部使用它时,我正在创建一个"UIDocumentPickerViewController",例如使用以下代码:
UIDocumentPickerViewController* documentPicker =
[[UIDocumentPickerViewController alloc]
initWithDocumentTypes:@[@"public.image"]
inMode:UIDocumentPickerModeImport];
扩展运行良好,但有一个例外:"validTypes"数组始终为"nil",因此我无法将访问限制为仅有效文件(在示例中:图像文件)。
我还用其他应用程序(如邮件或Pixelmator)测试了扩展程序:相同的结果;运行良好,但validType始终为零。当然,我不知道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"])
稍后尝试检查有效类型:-)