【问题标题】:My app is getting crashed on UIDocumentPickerViewController我的应用程序在 UIDocumentPickerViewController 上崩溃了
【发布时间】:2023-03-31 23:25:01
【问题描述】:

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

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

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

以前有人做过吗?我也想像下面的附件

【问题讨论】:

  • 请显示崩溃线程的堆栈跟踪。
  • [UIDocumentPickerViewController _commonInitWithCompletion:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UIDocumentPickerViewController.m:66 2015-03-27 17:40:24.282 DocPick[3285:73604] *** 终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,原因:“应用程序初始化文档选择器缺少 iCloud 权利。 com.apple.developer.icloud-container-identifiers 设置了吗? *** 首先抛出调用栈:

标签: ios xcode icloud icloud-drive uidocumentpickervc


【解决方案1】:

请参阅Apple Documentation 上的Prerequisite 部分:

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

如果这能解决您的问题,请告诉我!

【讨论】:

    【解决方案2】:

    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】:

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

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

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

      (Xcode 7.2,iOS 9.2)

      【讨论】:

        【解决方案4】:
        UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"] inMode:UIDocumentPickerModeImport];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多