我的应用程序在UIDocumentPickerViewController上崩溃了

时间:2015-03-27 12:33:00

标签: ios xcode icloud icloud-drive uidocumentpickervc

我正在开发iOS App上的文件共享,我是UIDocumentPickerViewController的新手。我不知道为什么我的应用程序崩溃了。

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

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

以前有人这样做过吗?我想像enter image description here

下面的附件那样做

4 个答案:

答案 0 :(得分:48)

请参阅Apple Documentation上的Prerequisite部分:

  

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

enter image description here

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

答案 1 :(得分:3)

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

  1. 从Xcode停止应用程序。
  2. 从设备启动应用程序(点击主屏幕上的应用程序图标...)
  3. 在您的应用中导航,以便打开UIDocumentPickerViewController
  4. 打开后,您可以在Xcode中再次启动应用,UIDocumentPickerViewController将按预期启动。
  5. 根据我的经验,它将一直有效,直到您安装TestFlight构建。有时您需要在重新启动Xcode后再次执行此操作 这肯定看起来像是在设备上安装权利的错误。

    (Xcode 7.2,iOS 9.2)

答案 2 :(得分:3)

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)

答案 3 :(得分:2)

UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"] inMode:UIDocumentPickerModeImport];