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


在本文中,您将了解如何在 Swift 语言中检查操作系统版本以构建功能。

我们将使用以下方法在 Swift 中检查操作系统版本:

  • 使用 ProcessInfo 类

  • 使用 #available 属性

  • 使用 UIDevice 类

  • 使用 @available 属性

使用 ProcessInfo 类

ProcessInfo 类可用于在 Swift 语言中获取版本(主版本、次版本和修订版本)。以下是如何获取 iOS 版本并将其打印到控制台的示例。

示例

import Foundation
let osVersion = ProcessInfo.processInfo.operatingSystemVersion
print("OS version major: \(osVersion.majorVersion)")
print("OS version minor: \(osVersion.minorVersion)")
print("OS version patch: \(osVersion.patchVersion)")

输出

OS version major: 5
OS version minor: 15
OS version patch: 0

在上面的代码中,ProcessInfo 类可以访问 operatingSystemVersion 属性。operatingSystemVersion 属性是一个结构体类型,包含获取版本的不同属性。此属性可用于获取主版本、次版本和修订版本。此属性使用不同的属性提供所有版本。

如何检查 iOS 版本?

在 Swift 中,您可以使用 UIDevice 类获取 iOS 的版本。以下是如何获取 iOS 版本并将其打印到控制台的示例:

示例

import UIKit
let device = UIDevice.current
let iosVersion = device.systemVersion
print("Current iOS version you are running: \(iosVersion)")

输出

Current iOS version you are running: 16.2

此代码使用 UIDevice 类的 systemVersion 属性获取包含 iOS 版本的字符串。

使用 #available 属性检查 iOS 版本

我们还可以使用 #available 属性在运行时检查 iOS 版本并根据版本执行不同的代码。

只有当应用在 iOS 版本大于或等于指定版本上运行时,代码才会执行。

示例

import Foundation
if #available(iOS 13, *) {
   print("Code to be executed on devices running iOS 13 or later")
} else {
   print("Code to be executed on devices running earlier versions of iOS")
}

输出

上述代码仅在 iOS 13 或更高版本中执行,如果设备运行的是 iOS 的早期版本,则将执行第二个代码块中的代码。

在我们的例子中,我们正在 iOS 16.2 版本上运行代码。

Code to be executed on devices running iOS 13 or later

您还可以将 #available 属性用于不同的平台,例如 watchOS、macOS 和 tvOS。以下是如何检查 watchOS 版本的示例:

import Foundation
if #available(watchOS 6, *) {
   // watchOS 6 specific code
} else {
   // watchOS 5 or earlier
}

这将检查当前 watchOS 版本,如果当前 watchOS 版本为 6 或更高版本,则执行 if 代码块中的代码。

使用 @available 属性检查 iOS 版本

@available 属性用于在运行时检查 iOS 版本并根据版本执行不同的代码。它以版本号和消息作为参数。在 @available 属性中,只有当应用在 iOS 版本大于或等于指定版本上运行时,代码才会执行。

示例

@available(iOS 13, *)
func testFunction() {
   // Code to be executed on devices running iOS 13 or later
   self.imageView.image = UIImage(systemName: "play.fill")
}

在此示例中,只有当设备运行 iOS 13 或更高版本时,才会执行 testFunction 函数。

还需要注意的是,如果函数或类在较低版本的平台上不可用,则应用将崩溃。

Swift 中的 @available 和 #available 属性都用于在运行时检查操作系统的版本并根据版本执行不同的代码。但是,它们的使用方式不同,功能略有差异。

@available 用于将函数、类或方法标记为仅在特定版本或更高版本中可用。它有两个参数:版本号和消息。如果应用在早于指定版本的系统上运行,则标记的函数、类或方法内部的代码将不会执行,并且应用将崩溃。

使用 #available 时,您可以创建仅在应用在您提供的操作系统版本大于或等于的情况下运行的条件代码。版本号是唯一需要的参数。只有当应用程序在操作系统版本大于或等于给定版本上运行时,#available 块内的代码才会被执行。

结论

在本文中,我们学习了如何检查 iOS 版本。在此基础上,如何运行特定版本的代码。有不同的方法来检查不同的情况。

更新于:2023年2月28日

6K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.