检查是否";首选外部GPU“;在Objective-C中启用

检查是否";首选外部GPU“;在Objective-C中启用,objective-c,macos,macos-mojave,Objective C,Macos,Macos Mojave,我正在制作一个应用程序,如果启用或未启用“首选外部GPU”,它的行为应该有所不同 快速解释:在莫哈韦,现在您可以启用一个选项 对于其“Get”中的任何应用程序,称为“首选外部GPU” 信息“窗口 尽管如此,我仍然找不到任何方法来检索这些信息 NSBundle自El Capitan以来没有变化,因此它不包含任何eGPU相关信息 MTLDevice没有收到任何isEnabled功能或类似功能,其新的Mojave方法似乎也没有任何帮助 MTLCopyAllDevices根据返回系统中所有金属设备的引

我正在制作一个应用程序,如果启用或未启用“首选外部GPU”,它的行为应该有所不同

快速解释:在莫哈韦,现在您可以启用一个选项 对于其“Get”中的任何应用程序,称为“首选外部GPU” 信息“窗口

尽管如此,我仍然找不到任何方法来检索这些信息

  • NSBundle
    自El Capitan以来没有变化,因此它不包含任何eGPU相关信息
  • MTLDevice
    没有收到任何
    isEnabled
    功能或类似功能,其新的Mojave方法似乎也没有任何帮助
  • MTLCopyAllDevices
    根据返回系统中所有金属设备的引用数组,以便包括EGPU,即使选择了提及的选项
  • MTLCopyAllDevicesWithObserver
    也有同样的问题,因为在中,它返回系统可用的所有金属设备,因此基本上再次忽略了提到的选项
  • 终端命令
    mdls
    似乎也没有显示任何与eGPUs相关的信息(尽管我可能错了,因为如果我启用了上述选项,我没有任何eGPU来检查应用程序的输出)。但是,如果它确实存在,它仍然是未记录的:
通用元数据属性键

文件系统元数据属性键

有人知道如何在Objective-C中或使用terminal命令检查吗?(我更喜欢第一个选项,但如果没有其他方法,我可以在应用程序中运行终端命令)