【问题标题】:How to determine the current Apple device model number?如何确定当前的苹果设备型号?
【发布时间】:2021-02-18 21:33:08
【问题描述】:

我知道 Stack Overflow 上有很多类似的问题(例如,this one)。但我想确定 Apple 设备型号,而不是型号名称。它应该是 A1823 或 A2404 之类的字符串。

【问题讨论】:

    标签: ios objective-c swift tvos watchos


    【解决方案1】:

    如果您不费心摆弄私有 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
        }
    }
    

    【讨论】:

    • 谢谢。但是对于我的 iPad mini 4 UIDevice.current.modelNumber 在我期望 A1538 时返回 MK9P2
    • 哦,这似乎是订单号。我无法弄清楚获得所需型号的正确密钥是什么。在这里你可以找到Order Number mapping to Model Number。请注意,如果您使用此 API,您的应用可能会在 AppStore 上被拒绝
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2019-12-13
    • 2011-01-21
    • 2011-05-12
    相关资源
    最近更新 更多