1 背景
做过 iOS 开发的都知道,iOS 有一套内部的 机型ID定义,我们期望 获取iphone的设备名称 的时候,一般通过这套 内部的机型ID 进行映射,比如:
iPhone9,1 --> iPhone 7
iPhone9,2 --> iPhone 7 Plus
iPhone10,3 --> iPhone X
iPhone11,8 --> iPhone XR
iPad7,6 --> iPad 6
Watch4,2, Apple Watch Series 4
那么,每当有新的苹果设备出现时候,必要时候我们需要更新这张映射表。通常我们的做法是:
去百度搜索 “iOS设备映射”,然后找到一些同道的总结的代码
但是,我们怎么 保证这些映射的正确性 呢?
(我在网上就搜索到过错误的映射代码)
答案当然是 对比官宣的讯息。
2 确认官方映射
2.1 打开下述iPhoneWiki的链接
2.2 找到设备信息表
比如我们想查看iPhone的设备型号映射,则先找到【iPhone】的表格,如下图
iPhone设备信息表2.3 查看讯息
其中Identifier、Generation 两列即为我们关注的映射前后的讯息。
查看讯息2.4 查看其他设备种类
同理,确认 iPad 的对应、iWatch 的设备型号对应关系 只要在该页面中找到它们对应的表格就好了。
3 我来帮你做
代码未必要自己写了,你可以选择使用一些 第三方工具包提供的 接口支持 来支持 iOS 设备型号的映射。
比如,笔者维护的 CYToolkit 就有这样的支持。
3.1 获取设备名称
#import <CYToolkit/CYToolkit.h>
NSString *phoneName = [UIDevice cyPhoneTypeString];
3.2 CYToolkit Pod集成参考
pod 'CYToolkit', :git => 'https://github.com/chrisYooh/CYToolkit.git', :commit => 'a715e63'
3.3 CYToolkit 部分亮点
CYToolkit 作为一个工具包,里面还有很多其他 常用的 有趣的 扩展函数支持,比如:
// aImageView 是一个UIImageView 实例
// cyPreviewImage 可以让UIImageView中的Image像微信内点击图片一样进行大图的预览查看
[aImageView cyPreviewImage]
// cyShowToast 可以进行3秒的 toast提示
[UIView cyShowToast:@"网络加载中……"]
// aDate 是一个 NSDate 实例
// cyDateTimeString 可以将一个 NSDate 实例转化为类似 2019-02-05 18:33:21 的字符串
NSString *dateTimeStr = [aDate cyDateTimeString];
感觉好用的可以给我点个赞哦!
(无论是简书还是github!!!)
网友评论