如何使用 Swift 確定裝置型別(iPhone、iPod Touch)?
在開發 iOS 應用程式時,我們有時需要知道應用程式安裝在哪個裝置上,並根據使用的裝置提供自定義功能。例如,我們希望在 iPhone X 上提供一些功能,但在 iPhone 7 上不提供。在本文中,我們將學習如何使用 iOS 應用程式查詢正在使用的 iOS 裝置。
讓我們瞭解一些實現預期結果所需的概念,
utsname − 這是 iOS 的 Darwin 模組中的一個結構
uname − uname 是一個函式,它以 utsname 作為輸入,並返回 Int32 作為輸出。
映象 − 任何型別例項的子結構和顯示樣式的表示。
在 iOS SDK 上查詢正在使用的裝置是一項簡單的任務,如果我們只需要查詢型號或名稱,我們可以使用以下任何程式碼,它將返回一個字串。
但是以上程式碼無法確定正在使用的確切裝置,它只能告訴我們正在使用 iPhone。要獲取正在使用的確切裝置,我們需要執行一些步驟。
在 Swift 中,我們將使用上面提到的所有術語來獲取裝置編號作為輸出。
func getDevice() -> String {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce(“”) { identifier, element in
guard let value = element.value as? Int8 , value != 0 else { identifier }
identifier + String(UnicodeScalar(UInt8(value)))
}
return identifier
}此函式提供給我們模型程式碼,但不是確切的裝置名稱。我們將不得不將此“identifier”變數與多個值進行比較,以根據需求獲取模型名稱。
以下是在 iOS 12.0 版本的模擬器上執行 iPhone 7 Plus 時程式碼執行情況的示例

一些蘋果裝置的型號程式碼及其對應的名稱如下:
| iPod4,1 | iPod Touch 4G |
| iPod5,1 | iPod Touch 5G |
| iPod7,1 | iPod Touch 6G |
| iPhone3,1 , iPhone3,2 , iPhone3,3 | iPhone 4 |
| iPhone4, | iPhone 4s |
| iPhone5,1 , iPhone5,2 | iPhone 5 |
| iPhone5,3 , iPhone5,4 | iPhone 5c |
| iPhone6,1 , iPhone6,2 | iPhone 5s |
| iPhone7,2 | iPhone 6 |
| iPhone7,1 | iPhone 6 Plus |
| iPhone8,1 | iPhone 6s |
| iPhone8,2 | iPhone 6s Plus |
| iPhone8,4 | iPhone SE |
| iPhone9,1 , iPhone9,3 | iPhone 7 |
| iPhone9,2 , iPhone 9,4 | iPhone 7 Plus |
| iPad2,1 , iPad2,2 , iPad2,3 , iPad2,4 | iPad 2 |
| iPad3,1 , iPad3,2 , iPad3,3 | iPad 3 |
| iPad3,4 , iPad3,5 , iPad3,6 | iPad 4 |
| iPad4,1 , iPad4,2 , iPad4,3 | iPad Air |
| iPad5,3 , iPad5,4 | iPad Air 2 |
| iPad2,5 , iPad2,6 , iPad2,7 | iPad Mini |
| iPad4,4 , iPad4,5 , iPad4,6 | iPad Mini 2 |
| iPad4,7 , iPad4,8 , iPad4,9 | iPad Mini 3 |
| iPad5,1 , iPad5,2 | iPad Mini 4 |
| iPad6,3 , iPad6,4 | iPad Pro (9.7 英寸) |
| iPad6,7 , iPad6,8 | iPad Pro (12.9 英寸) |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP