ios - 如何判断Apple Watch型号?

标签 ios watchkit apple-watch

WKInterfaceDevice.current().model 属性没有给出型号:

For Apple Watch, the value of this string is Apple Watch.

如何从 iOS 中确定确切的 Apple Watch 型号?

Watch app screenshot, image credits https://support.apple.com/en-us/HT204507

最佳答案

只是稍微更新了 @Mathieu Vandeginste 对 WatchOS 6 和 Apple Watch Series 5 的回答。

private func getWatchModel() -> String? {
    var size: size_t = 0
    sysctlbyname("hw.machine", nil, &size, nil, 0)
    var machine = [CChar](repeating: 0, count: size)
    sysctlbyname("hw.machine", &machine, &size, nil, 0)
    return String(cString: &machine, encoding: String.Encoding.utf8)?.trimmingCharacters(in: .whitespacesAndNewlines)
}

这需要对 WatchOS 5 进行更改以从 getWatchModel() 中修剪原始字符串,因为它现在使用以下选项卡结束:?.trimmingCharacters(in: .whitespacesAndNewlines)

private func getWatchName(model: String) -> String {
    switch model {
        case "Watch1,1":
            return "Apple Watch Series 0 38mm"
        case "Watch1,2":
            return"Apple Watch Series 0 42mm"
        case "Watch2,3":
            return "Apple Watch Series 2 38mm"
        case "Watch2,4":
            return "Apple Watch Series 2 42mmm"
        case "Watch2,6":
            return "Apple Watch Series 1 38mm"
        case "Watch2,7":
            return "Apple Watch Series 1 42mm"
        case "Watch3,1":
            return "Apple Watch Series 3 38mm Cellular"
        case "Watch3,2":
            return "Apple Watch Series 3 42mm Cellular"
        case "Watch3,3":
            return "Apple Watch Series 3 38mm"
        case "Watch3,4":
            return "Apple Watch Series 3 42mm"
        case "Watch4,1":
            return "Apple Watch Series 4 40mm"
        case "Watch4,2":
            return "Apple Watch Series 4 44mm"
        case "Watch4,3":
            return "Apple Watch Series 4 40mm Cellular"
        case "Watch4,4":
            return "Apple Watch Series 4 44mm Cellular"
        case "Watch5,1":
            return "Apple Watch Series 5 40mm"
        case "Watch5,2":
            return "Apple Watch Series 5 44mm"
        case "Watch5,3":
            return "Apple Watch Series 5 40mm Cellular"
        case "Watch5,4":
            return "Apple Watch Series 5 44mm Cellular"
        case "Watch5,9":
            return "Apple Watch SE 40mm"
        case "Watch5,10":
            return "Apple Watch SE 44mm"
        case "Watch5,11":
            return "Apple Watch SE 40mm Cellular"
        case "Watch5,12":
            return "Apple Watch SE 44mm Cellular"
        case "Watch6,1":
            return "Apple Watch Series 6 40mm"
        case "Watch6,2":
            return "Apple Watch Series 6 44mm"
        case "Watch6.3":
            return "Apple Watch Series 6 40mm Cellular"
        case "Watch6,4":
            return "Apple Watch Series 6 44mm Cellular"
        case "Watch6,6":
            return "Apple Watch Series 7 41mm"
        case "Watch6,7":
            return "Apple Watch Series 7 45mm"
        case "Watch6,8":
            return "Apple Watch Series 7 41mm Cellular"
        case "Watch6,9":
            return "Apple Watch Series 7 45mm Cellular"
        default:
            return "unknown"
    }
}

刚刚根据 this article 将新模型添加到上面

关于ios - 如何判断Apple Watch型号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49087330/

相关文章:

swift - 如何启动 watch 套件通知?

ios - 无法在模拟器中模拟MMWormhole应用程序

ios - watchOS 2 WatchConnectivity Apple Watch 和 iPhone 之间的时间延迟,同时将数据从一个发送到另一个?

javascript - 使用 web View 在 xcode 控制台上捕获 JS 日志

ios - Objective-C RestKit 无输出

ios - 如何加载多个图像到WKInterfaceImage

ios - 是否可以从 HealthKit 读取 Apple Watch 目标(移动、走步和站立)?

ios - Xcode 在 UITableRowSelection 之后显示 UIAlertView?

滚动到底部时,iOS 无法看到自定义表格单元格的最后几行。

ios - 在 Apple Watch 上实现登录机制的最佳实践