作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想这实际上是一个双重问题。一方面,我想知道是否有一种巧妙的方法来枚举给定系统上所有声明的 UTI。
我知道 lsregister -dump 是一个选项,因为我这边有一些 grep 和解析;但是,我想知道是否有更好的解决方案。
此外...我想知道是否有一种方法可以检索给定应用程序路径的导入/导出 UTI 列表。我知道相反的情况应该是可能的(即查找哪个包已声明给定的 UTI)。
我想知道这个问题的原因之一是因为问题第一部分的可能解决方案是迭代所有应用程序并检索其导入/导出的 UTI(尽管我认为这可能不是非常有效的解决方案)
我已经搜索了我能想到的所有地方,但并没有真正接近答案。到目前为止,似乎要么解析 lsregister -dump 的输出,要么尝试直接从应用程序的 Info.plist 文件读取 UTI key ...
最后,在我的搜索中,我遇到了一个可能有用的私有(private) API,但我完全不知道如何使用它,因为网上绝对没有它的文档。 .我说的是“__UTCopyDeclaredTypeIdentifiers”
...也许有人知道该函数采用哪些(如果有)参数,和/或它到底返回什么?
最佳答案
import Foundation
@_silgen_name("_UTCopyDeclaredTypeIdentifiers") func UTCopyDeclaredTypeIdentifiers() -> CFArray
let UTIs = UTCopyDeclaredTypeIdentifiers()
print(UTIs)
应该打印该函数知道的所有 UTI。
关于objective-c - 一种获取 Cocoa (Swift/Obj-C) 中所有声明的 UTI 的方法...和/或确定应用程序包定义的 UTI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210048/
我是一名优秀的程序员,十分优秀!