文档类型 vs. 导出和导入 UTI

56

有人能解释一下Xcode 5.1中Document Types、Exported UTIs和Imported UTIs之间的区别吗?我希望我的应用程序能够根据文件扩展名自动检测文件类型。为了实现这一点,我需要实现这三个中的哪一个?

1个回答

128
您需要添加一个文档类型(Document Type),以注册您的应用程序可以打开该文档类型,当您选择已知文件类型时,这很简单,但如果文件类型未知,则还必须在导入的UTIs(Imported UTIs)中定义它。 如果您正在定义自己的文件类型,则必须在导出的UTIs(Exported UTIs)中声明它,并将该文档类型(Document Type)添加到能够打开它。

示例:

我想打开PDF,这是一种已知的文件类型,因此我只需在文档类型(Document Types)中注册即可。

我想打开EPUB,这不是已知的文件类型,因此我在导入的UTIs(Imported UTIs)文档类型(Document Types)中注册它。

我想打开并注册我拥有授权的类型,因此我在导出的UTIs(Exported UTIs)文档类型(Document Types)中注册它。

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

一些相关链接:

相关问题

一个非常好但旧的有关此主题的教程


@user3441734:嗯,我没有开发过像你描述的那样的东西,但是,如果你唯一的问题是文件图标没有显示出来,我建议你检查导出的UTis菜单,并检查你是否在小图标和大图标字段中选择了相应的文件类型图标。如果你已经这样做了,但图标仍然没有显示出来,那么我认为你应该提出一个新问题,并给我们更多关于你的应用程序的细节。 - aldoram5
完成了...但是我只能公开一种文档类型,这是我的应用程序可以打开(读取)的。我没有问题这个图标。我有问题第二个文件类型,只有我的应用程序扩展可以读取。因为没有应用程序能够打开它,所以没有图标...这就是现实。 - user3441734
9.3版本中出现了一个奇怪的错误,导致我无法导入文件,应用程序崩溃。 - DogCoffee
在我的应用程序中,我试图在UIDocumentPicker中导入某个未知的文件类型(.sty),但在我的客户设备上,该类型的文件是虚影,并且无法打开。 UIDocumentPicker是否也遵循文档类型和导入的UTI? - bio
据我所记,是的,他们只需要安装您的应用程序,并且您的应用程序必须在导入的 UTI 中进行注册。如果这样不起作用,我建议您为此打开一个新问题。 - aldoram5
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接