gpt4 book ai didi

objective-c - 应用程序理解的内容类型

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:40 26 4
gpt4 key购买 nike

给定应用程序路径(或应用程序的 NSBundle 等),是否有一种方法可以轻松/高效地确定应用程序可以打开哪些内容类型?

我最初的尝试是读取应用程序的 Info.plist 文件并提取 kUTExportedTypeDeclarationsKey 键下列出的内容类型。但是,这种方法存在一些我无法解决的缺陷。

  1. 并非所有应用程序都使用此 key 。例如,BBEdit 没有,而是列出了一大堆可识别的文件扩展名。
  2. UTI 区分大小写。例如,Pages 将 com.apple.iWork.Pages.pages 列为导出的内容类型,但实际上没有 Pages 文档在其内容类型树中列出该类型。文档使用 com.apple.iwork.pages.pages,它由 iWork quicklook 生成器定义(位于 /Library/QuickLook/iWork.qlgenerator)。

知道一些 LaunchServices 函数(LSCopyApplicationURLsForURL()LSCopyApplicationForMIMEType() 等),我可以获得可以打开文件(或一种文件类型),但我想做相反的事情。 (也许我不得不求助于解析 lsregister -dump 的输出?)

也许更简单的问题表述方式是:给定一个应用程序,找到它可以打开的所有文件的最简单方法是什么?

有什么建议吗?

最佳答案

查看 LaunchServices 和提供的 LSCanRefAcceptItem() API。

关于objective-c - 应用程序理解的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061099/

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