Xcode 文档类型与导出和导入的UTI

Xcode 文档类型与导出和导入的UTI,xcode,document,file-type,uti,Xcode,Document,File Type,Uti,有人能给我解释一下Xcode 5.1中文档类型、导出的UTI和导入的UTI之间的区别吗?我希望我的应用程序能够根据文件扩展名自动检测文件类型。要做到这一点,我需要实现这三种类型中的哪一种?您添加一个文档类型来注册您的应用程序可以打开该文档类型,当您选择时这很简单,但是如果文件类型未知,您还必须在导入的UTI中定义它。如果您正在定义自己的文件类型,则必须在导出的UTI中声明该文件类型,并添加该文件类型才能打开它 示例: 我想打开一个PDF,它是一种已知的文件类型,所以我只需在文档类型中注册它 我想

有人能给我解释一下Xcode 5.1中文档类型、导出的UTI和导入的UTI之间的区别吗?我希望我的应用程序能够根据文件扩展名自动检测文件类型。要做到这一点,我需要实现这三种类型中的哪一种?

您添加一个文档类型来注册您的应用程序可以打开该文档类型,当您选择时这很简单,但是如果文件类型未知,您还必须在导入的UTI中定义它。如果您正在定义自己的文件类型,则必须在导出的UTI中声明该文件类型,并添加该文件类型才能打开它

示例:

我想打开一个PDF,它是一种已知的文件类型,所以我只需在文档类型中注册它

我想打开一个EPUB,它不是一个已知的文件类型,所以我在导入的UTI和文档类型中注册它

我想打开并注册一个我有权威的类型,所以我在导出的UTI和文档类型中注册它

至于你的第二个问题,请注意,使用文档类型定义类型会使你的应用程序出现在“打开位置”对话框中,但不一定会使你的应用程序区分你的应用程序接收的文件类型,你必须自己处理。例如,假设您的应用程序是一个图像编辑器,并且您同时注册了png和jpeg类型,当用户想要编辑图像时,您的应用程序将收到该文件,但它不会自动检测到哪种类型,您必须处理该文件并响应它的任何类型

一些相关链接:


请问,如果我的应用程序是该文件的唯一制作者,您知道该怎么办吗?我的应用程序无法读取(打开)该文件,但它会生成(创建)该文件,以便与我的嵌入式应用程序扩展一起使用。我的场景工作正常,但我无法强制ios显示与文件关联的图标…@user3441734:mmm,我还没有开发出与您描述的类似的东西,但是,如果您遇到的唯一问题是文件图标没有显示,我建议您检查导出的UTis菜单,并检查您是否在“大小图标”字段中为文件类型选择了相应的图标。如果你这样做了,但图标仍然没有显示,那么我认为你应该问一个新问题,并向我们提供有关你的应用程序的更多详细信息。我有两个导出的UTI(大小图标大小都合适)。我只有一种文档类型(我的应用程序可以读取的文件)。我的应用程序扩展可以读取第二个。一切如期进行。缺少的部分是导出UTI的图标,该图标未知(电子邮件附件中没有该文件的图标,即使您可以使用我的应用程序扩展名从“电子邮件操作”菜单打开该文件)@user3441734好的,我建议您查看,根据接受的答案,应该将图标名称放在CbundleDocumentTypes数组中的CbundleTypeIConfile键中,而不是放在UTExportedTypeDeclarations数组中。也许值得注意的是,这个问题中的OP使用了icns文件类型作为图标,你也应该使用这种类型。你救了我的命。