gpt4 book ai didi

objective-c - UTI 和文件扩展名关联

转载 作者:太空狗 更新时间:2023-10-30 03:55:00 24 4
gpt4 key购买 nike

在我的应用程序中,我想包含一个 QuickLook 插件,该插件读取其他应用程序也使用的非系统扩展(让我们在此示例中使用 RAR)。我在我的应用程序包的 Info.plist 中将扩展声明为 Exported UTI,如下所示:

<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.archive</string>
<string>com.rarlab.rar-archive</string>
</array>
<key>UTTypeDescription</key>
<string>Custom RAR Archive</string>
<key>UTTypeIdentifier</key>
<string>com.my-company.rarx-archive</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>rarx</string>
</array>
</dict>
</dict>
</array>

而且我还适本地导入了 RAR UTI:

<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.archive</string>
</array>
<key>UTTypeDescription</key>
<string>RAR Archive</string>
<key>UTTypeIconFile</key>
<string>RAR</string>
<key>UTTypeIdentifier</key>
<string>com.rarlab.rar-archive</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>rar</string>
<string>rarx</string>
</array>
</dict>
</dict>
</array>

不过,在我运行应用程序后,RARX 文件似乎从未与它相关联。为了检查关联,我使用了 mdls,如下所示:

mdls -name kMDItemContentTypeTree "/Users/Me/.../A File.rarx"
>>> kMDItemContentTypeTree = (
"com.another-company.rarx-archive",
"public.data",
"public.item",
"public.archive"
)

为什么我的 UTI (com.my-company.rarx-archive) 没有出现在该列表中?我相信这会导致我的 Quick Look 插件无法启动,因为这些文件与 com.another-company.rarx-archive UTI 相关联。我系统上的另一个应用程序是被使用的。运行带有调试输出的 qlmanage 证实了这一点。

最佳答案

这里的一个问题是您试图将同一个扩展与两个不同的 UTI 相关联,Launch Services 无法处理。您导入的 com.rarlab.rar-archive 声明是正确的,它将所有类型为 rar 的文件分配给 com.rarlab.rar-archive正如预期的那样。

您不必要地声明了 Exported 声明,因为它试图重新定义 rar 扩展。与其这样做,您只想使用 Imported 声明并在您的 QuickLook 扩展中使用 com.rarlab-rar-archive 来声明它可以处理的内容。

只要其他应用程序未声明 QuickLook 扩展,您应该可以很好地声明此配对并使​​其正常工作。但是,由于听起来其他应用程序已经具有针对此特定 UTI 的 QuickLook 扩展,我认为您可能无法选择删除它。我的经验是,有冲突的 QuickLook 扩展是先到先得。

关于objective-c - UTI 和文件扩展名关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com