iOS开发-获取设备型号信息
开发中有的时候查看设计统计数据,或者通过日志查看错误信息,这个时候我们就需要获取获取设备信息,看下关于设备有几种方法:
NSLog(@"%@",[[UIDevice currentDevice] name]);//设备名称 NSLog(@"%@",[[UIDevice currentDevice] model]);//设备类型 NSLog(@"%@",[[UIDevice currentDevice] localizedModel]); NSLog(@"%@",[[UIDevice currentDevice] systemName]);//系统名称 NSLog(@"%@",[[UIDevice currentDevice] systemVersion]);//系统版本
这个并不能满足我们的需求,我们需要获取具体的设备型号,iPhone4还是iPhone6s,32G还是64G的,我们就需要自己扩张UIDevice,实战之前我们需要看一下维基百科的文档:https://www.theiphonewiki.com/wiki/Models;
+ (NSString *)devicePlatForm{ struct utsname systemInfo; uname(&systemInfo); NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (A1332)"; if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone 4 (A1332)"; if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (A1349)"; if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S (A1387/A1431)"; if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (A1428)"; if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (A1429/A1442)"; if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (A1456/A1532)"; if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (A1507/A1516/A1526/A1529)"; if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (A1453/A1533)"; if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (A1457/A1518/A1528/A1530)"; if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus (A1522/A1524)"; if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6 (A1549/A1586)"; //http://www.cnblogs.com/xiaofeixiang/ if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G (A1213)"; if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G (A1288)"; if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G (A1318)"; if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G (A1367)"; if ([platform isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G (A1421/A1509)"; if ([platform isEqualToString:@"iPad1,1"]) return @"iPad 1G (A1219/A1337)"; if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2 (A1395)"; if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (A1396)"; if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (A1397)"; if ([platform isEqualToString:@"iPad2,4"]) return @"iPad 2 (A1395+New Chip)"; if ([platform isEqualToString:@"iPad2,5"]) return @"iPad Mini 1G (A1432)"; if ([platform isEqualToString:@"iPad2,6"]) return @"iPad Mini 1G (A1454)"; if ([platform isEqualToString:@"iPad2,7"]) return @"iPad Mini 1G (A1455)"; if ([platform isEqualToString:@"iPad3,1"]) return @"iPad 3 (A1416)"; if ([platform isEqualToString:@"iPad3,2"]) return @"iPad 3 (A1403)"; if ([platform isEqualToString:@"iPad3,3"]) return @"iPad 3 (A1430)"; if ([platform isEqualToString:@"iPad3,4"]) return @"iPad 4 (A1458)"; if ([platform isEqualToString:@"iPad3,5"]) return @"iPad 4 (A1459)"; if ([platform isEqualToString:@"iPad3,6"]) return @"iPad 4 (A1460)"; if ([platform isEqualToString:@"iPad4,1"]) return @"iPad Air (A1474)"; if ([platform isEqualToString:@"iPad4,2"]) return @"iPad Air (A1475)"; if ([platform isEqualToString:@"iPad4,3"]) return @"iPad Air (A1476)"; if ([platform isEqualToString:@"iPad4,4"]) return @"iPad Mini 2G (A1489)"; if ([platform isEqualToString:@"iPad4,5"]) return @"iPad Mini 2G (A1490)"; if ([platform isEqualToString:@"iPad4,6"]) return @"iPad Mini 2G (A1491)"; if ([platform isEqualToString:@"i386"]) return @"iPhone Simulator"; if ([platform isEqualToString:@"x86_64"]) return @"iPhone Simulator"; return platform; }
参数信息可以通过维基百科来添加,如果单纯只是判断iPhone几代也可以通过屏幕分辨率确认~
GitHub项目地址:https://github.com/SmallElephant/FEDevice~
作者:FlyElephant
出处:http://www.cnblogs.com/xiaofeixiang
说明:博客经个人辛苦努力所得,如有转载会特别申明,博客不求技惊四座,但求与有缘人分享个人学习知识,生活学习提高之用,博客所有权归本人和博客园所有,如有转载请在显著位置给出博文链接和作者姓名,否则本人将付诸法律。
出处:http://www.cnblogs.com/xiaofeixiang
说明:博客经个人辛苦努力所得,如有转载会特别申明,博客不求技惊四座,但求与有缘人分享个人学习知识,生活学习提高之用,博客所有权归本人和博客园所有,如有转载请在显著位置给出博文链接和作者姓名,否则本人将付诸法律。