swift - Cocoa SCNetworkInterface 获取媒体子类型

标签 swift macos cocoa networking osx-yosemite

我正在用 Swift 编写一个 Cocoa 应用程序来确定可用的网络接口(interface)(wifi、以太网等),我想提取子类型选项。

例如,我有一个 Thunderbolt 以太网连接,在我的 Mac 网络偏好设置的“硬件”选项卡中,我可以将速度切换为 10baseT/UDP、100baseTX 等。

Apple 文档说我可以使用 SCNetworkInterfaceCopyMediaSubTypes获取一组可用媒体子类型(10BaseT/UTP、100baseTX 等),我需要做的就是给它一个 CFArray 参数,

available
The available options as returned by the SCNetworkInterfaceCopyMediaOptions function.

但是,文档指定 SCNetworkInterfaceCopyMediaOptions返回 bool 值,

TRUE if requested information has been returned

我正在尝试使用通过 SCNetworkInterfaceCopyAll() 检索到的接口(interface)的 CFArray,但 SCNetworkInterfaceCopyMediaOptions(interfaces) 返回 nil。

let interfaces = SCNetworkInterfaceCopyAll()
print(SCNetworkInterfaceCopyMediaSubTypes(interfaces))

>> nil

这是我可以在网络偏好设置中查看的屏幕截图

enter image description here

我怎样才能得到这个列表。我使用了错误的 CFArray 吗?我无法确定我还能传递什么,因为建议的 SCNetworkInterfaceCopyMediaOptions 返回一个 bool 值。

最佳答案

SCNetworkInterfaceCopyMediaOptions 返回一个 bool 值:

TRUE if requested information has been returned.

SCNetworkInterfaceCopyMediaOptions 返回一个数组,表示参数 available 中可能的媒体选项(子类型、选项)。

关于swift - Cocoa SCNetworkInterface 获取媒体子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731234/

相关文章:

iphone - 核心数据 : NSCocoaErrorDomain=134040 Only Occurs On Real Phone, 不是模拟器

swift - 为什么 Data 和 NSData 打印不同

ios - 如何在 swift 中使用完成处理程序制作倒数计时器

ios - 来自 UIView 的文件所有者的 IBAction 在 UIViewController 中不起作用

CSS 在所有 Windows 浏览器中都能正常工作,但在 OSX 上的 Firefox 中却不行

macos - 来自其他应用程序的 OSX 音频劫持风格音频录制 (cocoa)

ios - 如何使数字不重复超过 2 次?

objective-c - Objective-C 中的只读分层模型

objective-c - NSTextField 奇怪的左边距

iphone - 在解析 xml 文件之前处理 http 错误