如何使用所有类型的UTI初始化UIDocumentPickerViewController

Mur*_*ali 13 objective-c ios icloud uidocumentpickervc

我想打开UIDocumentPickerViewController,它应该允许用户选择所有类型的文件.我试图在UIDocumentPickerViewController初始化方法中提及所有UTI仍无法找到某些文件的有效UTI,如rar,Visio文件,mpp,mpt

UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:[MingleUtils allowedUTIs] inMode:UIDocumentPickerModeImport];
Run Code Online (Sandbox Code Playgroud)

+(NSArray*)allowedUTIs{
    return @[@"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"];
}
Run Code Online (Sandbox Code Playgroud)

Lab*_*Ars 28

如果要允许任何文件类型,则应使用

UIDocumentPickerViewController* documentPicker = 
  [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.data"]
                                                         inMode:UIDocumentPickerModeImport];
Run Code Online (Sandbox Code Playgroud)

有关UTI概念,请参阅Apple文档

  • 在iOS 12.0上-不会崩溃,但也不允许我选择所需的文件。 (2认同)

Moh*_*our 10

斯威夫特 5:

import MobileCoreServices

    let importMenu = UIDocumentPickerViewController(documentTypes: ["public.item"], in: .import)
    importMenu.delegate = self
    importMenu.modalPresentationStyle = .fullScreen
    self.present(importMenu, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)


小智 1

我认为你最好的办法是使用抽象 UTI 类型

使用 kUTTypeContent 和 kUTTypeItem 应该涵盖大多数文件类型。