web-dev-qa-db-ja.com

私のアプリはUIDocumentPickerViewControllerでクラッシュします

IOSアプリでファイル共有に取り組んでいます。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

12
Anand3777

AppleドキュメントPrerequisiteセクションを参照してください。

アプリでドキュメントピッカーを使用する前に、XcodeでiCloudドキュメント機能をオンにする必要があります

enter image description here

これで問題が解決するかどうか教えてください!

49

すべてのエンタイトルメントが設定されていても、デバイス上で(シミュレーターではない)を実行すると、これが時々発生します。
これまでに見つけた最善の解決策は次のとおりです。

  1. Xcodeからアプリを停止します。
  2. デバイスからアプリを起動します(ホーム画面のアプリアイコンをタップします...)
  3. UIDocumentPickerViewControllerを開くには、アプリ内を移動します。
  4. 開いたら、Xcodeでアプリを再度起動すると、UIDocumentPickerViewControllerが意図したとおりに初期化されます。

私の経験から、TestFlightビルドをインストールするまで機能します。 Xcodeを再起動した後、これを再度実行する必要がある場合があります。
これは確かに、デバイスに資格をインストールする際のバグのように見えます。

(Xcode 7.2、iOS 9.2)

3
Nir Golan

Swift 3.すべてのドキュメントを選択できます。

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
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.Apple.iWork.pages.pages", @"com.Apple.iWork.numbers.numbers", @"com.Apple.iWork.keynote.key"] inMode:UIDocumentPickerModeImport];
2
Ketan Patel