如何在 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.