Мое приложение падает на 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];

Приложение падает на выделенные строки.

Кто-нибудь делал это ранее? Я хочу сделать то же самое, что и вложение ниже

4 ответа

Решение

Увидеть Prerequisite раздел по документации Apple:

Прежде чем ваше приложение сможет использовать средство выбора документов, вы должны включить возможности документов iCloud в XCode

Дайте мне знать, если это решит вашу проблему!

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)

Даже с учетом всех установленных прав это все равно происходит время от времени при работе на устройстве (не на симуляторе).
Лучшее решение, которое я нашел до сих пор:

  1. Остановите приложение из Xcode.
  2. Запустите приложение с устройства (нажмите значок приложения на главном экране...)
  3. Перейдите в своем приложении, чтобы открыть UIDocumentPickerViewController,
  4. После открытия вы можете снова запустить приложение в Xcode и UIDocumentPickerViewController будет инициировать, как задумано.

По моему опыту, он будет работать, пока вы не установите сборку TestFlight. Иногда вам нужно будет сделать это снова после перезапуска XCode.
Это, конечно, похоже на ошибку с установкой прав на устройство.

(Xcode 7.2, iOS 9.2)

UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"] inMode:UIDocumentPickerModeImport];
Другие вопросы по тегам