12

我正在我的 iOS 应用程序上进行文件共享,我是UIDocumentPickerViewController. 我不知道为什么我的应用程序崩溃了。

UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.image"] inMode:UIDocumentPickerModeImport];
documentPicker.delegate = self;
documentPicker.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:documentPicker animated:YES completion:nil];

应用程序在突出显示的行上崩溃。

以前有人这样做过吗?我想像下面的附件一样做在此处输入图像描述

4

4 回答 4

51

请参阅Apple 文档Prerequisite部分:

在您的应用程序可以使用文档选择器之前,您必须在 Xcode 中打开 iCloud 文档功能

在此处输入图像描述

让我知道这是否能解决您的问题!

于 2015-03-30T13:47:40.197 回答
4

swift 3.0你可以选择所有文件。

let documentPicker = UIDocumentPickerViewController(documentTypes: ["com.apple.iwork.pages.pages", "com.apple.iwork.numbers.numbers", "com.apple.iwork.keynote.key","public.image", "com.apple.application", "public.item","public.data", "public.content", "public.audiovisual-content", "public.movie", "public.audiovisual-content", "public.video", "public.audio", "public.text", "public.data", "public.zip-archive", "com.pkware.zip-archive", "public.composite-content", "public.text"], in: .import)

    documentPicker.delegate = self
    present(documentPicker, animated: true, completion: nil)
于 2017-06-07T09:39:53.617 回答
3

即使设置了所有权利,当在设备(而不是模拟器)上运行时,这种情况仍然会时不时发生。
到目前为止,我发现的最佳解决方案是:

  1. 从 Xcode 停止应用程序。
  2. 从设备启动应用程序(点击主屏幕上的应用程序图标...)
  3. 在您的应用中导航,以打开UIDocumentPickerViewController.
  4. 打开后,您可以在 Xcode 中再次启动该应用程序UIDocumentPickerViewController并按预期进行初始化。

根据我的经验,在您安装 TestFlight 构建之前,它将一直有效。有时您需要在重新启动 Xcode 后再次执行此操作。
这肯定看起来像是在设备上安装权利的错误。

(Xcode 7.2,iOS 9.2)

于 2016-01-05T07:00:18.047 回答
2
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"] inMode:UIDocumentPickerModeImport];
于 2015-04-27T06:52:09.317 回答