问题
I am working on file sharing on my iOS App, I am new to UIDocumentPickerViewController
. I do not know why my app is crashing.
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.image"] inMode:UIDocumentPickerModeImport];
documentPicker.delegate = self;
documentPicker.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:documentPicker animated:YES completion:nil];
App is crashing on the highlighted lines.
Has anyone done this previously? I want to do the same like the attachment below
回答1:
See Prerequisite
section on Apple Documentation:
Before your app can use the document picker, you must turn on the iCloud Documents capabilities in Xcode
Let me know if this solve your problem!
回答2:
Even with all entitlements set up, this still happens every now and then, when running on a device (not simulator).
The best solution I've found so far is:
- Stop the app from Xcode.
- Launch the app from the device (tap the app icon on the home screen...)
- Navigate in your app, in order to open the
UIDocumentPickerViewController
. - Once open, you can launch the app again in Xcode and
UIDocumentPickerViewController
will init as intended.
From my experience, it will work until you install a TestFlight build. Sometimes you'll need to do this again after restarting Xcode.
This certainly looks like a bug with installing entitlements on the device.
(Xcode 7.2, iOS 9.2)
回答3:
swift 3.0 you can select all document.
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)
回答4:
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"] inMode:UIDocumentPickerModeImport];
来源:https://stackoverflow.com/questions/29300772/my-app-is-getting-crashed-on-uidocumentpickerviewcontroller