【发布时间】:2021-02-18 21:33:08
【问题描述】:
我知道 Stack Overflow 上有很多类似的问题(例如,this one)。但我想确定 Apple 设备型号,而不是型号名称。它应该是 A1823 或 A2404 之类的字符串。
【问题讨论】:
标签: ios objective-c swift tvos watchos
我知道 Stack Overflow 上有很多类似的问题(例如,this one)。但我想确定 Apple 设备型号,而不是型号名称。它应该是 A1823 或 A2404 之类的字符串。
【问题讨论】:
标签: ios objective-c swift tvos watchos
如果您不费心摆弄私有 API,那么
extension UIDevice {
var modelNumber: String? {
let getModelNumber: (Selector) -> String? = {
return UIDevice.current.perform($0, with: "ModelNumber")?.takeUnretainedValue() as? String
}
let _deviceInfoKeySel = NSSelectorFromString("_deviceInfoForKey:")
let deviceInfoKeySel = NSSelectorFromString("deviceInfoForKey:")
if UIDevice.current.responds(to: _deviceInfoKeySel) {
return getModelNumber(_deviceInfoKeySel)
} else if UIDevice.current.responds(to: deviceInfoKeySel) {
return getModelNumber(deviceInfoKeySel)
}
return nil
}
}
【讨论】:
UIDevice.current.modelNumber 在我期望 A1538 时返回 MK9P2。