gpt4 book ai didi

objective-c - 一种获取 Cocoa (Swift/Obj-C) 中所有声明的 UTI 的方法...和/或确定应用程序包定义的 UTI?

转载 作者:行者123 更新时间:2023-11-30 12:49:17 25 4
gpt4 key购买 nike

我想这实际上是一个双重问题。一方面,我想知道是否有一种巧妙的方法来枚举给定系统上所有声明的 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/

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