iOS开发-获取设备名称

随便放的图
随便放的图

问题描述

公司开发APP的时候,领导要求分析设备用户量,即用iPhone5s的有多少,iPhone6s的有多少等等。这样就需要在代码中获取设备的名称

解决方案

从网上查找了些资料,基本上都是通过获取到设备的产品类型来判断设备名称的。废话不多说,直接上代码了

导入头文件 #include <sys/sysctl.h>
- (NSString *)getCurrentDeviceName
{
int mib[2];
size_t len;
char *machine;

    mib[0] = CTL_HW;
    mib[1] = HW_MACHINE;
    sysctl(mib, 2, NULL, &len, NULL, 0);
    machine = malloc(len);
    sysctl(mib, 2, machine, &len, NULL, 0);

    NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
    free(machine);

    if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c";
    if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c";
    if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s";
    if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s";
    if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
    if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
    if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
    if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";

    if ([platform isEqualToString:@"i386"])      return @"iPhone Simulator";
    if ([platform isEqualToString:@"x86_64"])    return @"iPhone Simulator";
    return platform;
}

附录

产品类型 设备名称
iPhone1,2 iPhone 3G
iPhone2,1 iPhone 3GS
iPhone3,1 iPhone 4
iPhone3,2 iPhone 4
iPhone3,3 iPhone 4
iPhone4,1 iPhone 4s
iPhone5,1 iPhone 5
iPhone5,2 iPhone 5
iPhone5,3 iPhone 5c
iPhone5,4 iPhone 5c
iPhone6,1 iPhone 5s
iPhone6,2 iPhone 5s
iPhone7,1 iPhone 6 Plus
iPhone7,2 iPhone 6
iPhone8,1 iPhone 6s
iPhone8,2 iPhone 6s Plus
iPhone8,4 iPhone SE

注: iPhone 6/6Plus 和 iPhone 6s/6sPlus的产品类型要注意分别

更多产品类型对应的设备名称请参考http://www.i4.cn/firmware.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 可能由于本身读书不多的原因,第一次听说王小波的名字是在一个微信公众号关于王小波老师逝世多少周年的文章;文章给...
    蓝莓之夜888阅读 343评论 2 3
  • 听蒋勋说红楼,果真能静心。林青霞的安眠药不假。 绵绵的台湾腔,男人变得文雅,女人变得可爱。 不止说红楼,会...
    littlecolor阅读 1,166评论 0 51
  • 和同龄人相比,我的中学时光有着许多的不同、许多的特别,“住校生”让我和我的同学一起学习、一起生活;一起经历着早锻...
    依依ll阅读 714评论 0 2
  • 【作者】苏轼 【朝代】宋代 三月七日, 沙湖道中遇雨。 雨具先去, 同行皆狼狈, 余独不觉。 已而遂晴, 故作此。...
    MachineLP阅读 273评论 0 1