小编典典

在 Swift 中检查操作系统版本?

all

我正在尝试在 Swift 中检查系统信息。我发现,它可以通过代码来实现:

var sysData:CMutablePointer<utsname> = nil
let retVal:CInt = uname(sysData)

这段代码有两个问题:

  1. sysData 的初始值应该是多少?此示例在 retVal 中给出 -1 可能是因为 sysData 为 nil。
  2. 如何从 sysData 读取信息?

阅读 61

收藏
2022-05-24

共1个答案

小编典典

对于 iOS,请尝试:

var systemVersion = UIDevice.current.systemVersion

对于 OS X,请尝试:

var systemVersion = NSProcessInfo.processInfo().operatingSystemVersion

如果您只想检查用户是否至少在运行特定版本,您还可以使用以下适用于 iOS 和 OS X 的 Swift 2 功能:

if #available(iOS 9.0, *) {
    // use the feature only available in iOS 9
    // for ex. UIStackView
} else {
    // or use some work around
}

但不建议检查操作系统版本。 最好检查您要使用的功能是否在设备上可用,而不是比较版本号。 对于 iOS,如上所述,您应该检查它是否响应选择器;例如。:

if (self.respondsToSelector(Selector("showViewController"))) {
    self.showViewController(vc, sender: self)
} else {
    // some work around
}
2022-05-24