JLChen
2021-11-04 1443556e9ccb1a19ed8e6710c16c8adc4d4f4fb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//
//  Copyright © 2019 jm. All rights reserved.
//
 
import Foundation
 
/// 是否iPhoneX系列设备
public var dh_isiPhoneX: Bool {
    
    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 {
            return identifier
        }
        return identifier + String(UnicodeScalar(UInt8(value)))
    }
    // 截取机型版本号
    guard let model = identifier.split(separator: ",").first else {
        return false
    }
    let modelString = String(model)
    var modelNumber: String = "0"
    if modelString.count > 6 {
        modelNumber = String(modelString.suffix(modelString.count - 6))
    }
    /**
     @"iPhone10,3"  iPhone X
     @"iPhone10,6"  iPhone X
     @"iPhone11,8"  iPhone XR
     @"iPhone11,2"  iPhone XS
     @"iPhone11,4"  iPhone XS Max
     @"iPhone11,6"  iPhone XS Max
     */
    if identifier == "iPhone10,3" || identifier == "iPhone10,6" || Int(modelNumber) ?? 0 >= 11 {
        return true
    }
    return false
}