iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P

2020-01-18 16:23:53王旭

 


#include <sys/types.h> 
#include <sys/sysctl.h>
//获得设备型号 
+ (NSString *)getCurrentDeviceModel 
{ 
int mib[2]; 
size_t len; 
charchar *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); 
// iPhone 
if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone2G"; 
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone3G"; 
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone3GS"; 
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone4"; 
if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone4"; 
if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone4"; 
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone4S"; 
if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone5"; 
if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone5"; 
if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone5c"; 
if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone5c"; 
if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone5s"; 
if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone5s"; 
if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone6"; 
if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone6Plus"; 
if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone6s"; 
if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone6sPlus"; 
if ([platform isEqualToString:@"iPhone8,3"]) return @"iPhoneSE"; 
if ([platform isEqualToString:@"iPhone8,4"]) return @"iPhoneSE"; 
if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone7"; 
if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone7Plus"; 
//iPod Touch 
if ([platform isEqualToString:@"iPod1,1"]) return @"iPodTouch"; 
if ([platform isEqualToString:@"iPod2,1"]) return @"iPodTouch2G"; 
if ([platform isEqualToString:@"iPod3,1"]) return @"iPodTouch3G"; 
if ([platform isEqualToString:@"iPod4,1"]) return @"iPodTouch4G"; 
if ([platform isEqualToString:@"iPod5,1"]) return @"iPodTouch5G"; 
if ([platform isEqualToString:@"iPod7,1"]) return @"iPodTouch6G"; 
//iPad 
if ([platform isEqualToString:@"iPad1,1"]) return @"iPad"; 
if ([platform isEqualToString:@"iPad2,1"]) return @"iPad2"; 
if ([platform isEqualToString:@"iPad2,2"]) return @"iPad2"; 
if ([platform isEqualToString:@"iPad2,3"]) return @"iPad2"; 
if ([platform isEqualToString:@"iPad2,4"]) return @"iPad2"; 
if ([platform isEqualToString:@"iPad3,1"]) return @"iPad3"; 
if ([platform isEqualToString:@"iPad3,2"]) return @"iPad3"; 
if ([platform isEqualToString:@"iPad3,3"]) return @"iPad3"; 
if ([platform isEqualToString:@"iPad3,4"]) return @"iPad4"; 
if ([platform isEqualToString:@"iPad3,5"]) return @"iPad4"; 
if ([platform isEqualToString:@"iPad3,6"]) return @"iPad4"; 
//iPad Air 
if ([platform isEqualToString:@"iPad4,1"]) return @"iPadAir"; 
if ([platform isEqualToString:@"iPad4,2"]) return @"iPadAir"; 
if ([platform isEqualToString:@"iPad4,3"]) return @"iPadAir"; 
if ([platform isEqualToString:@"iPad5,3"]) return @"iPadAir2"; 
if ([platform isEqualToString:@"iPad5,4"]) return @"iPadAir2"; 
//iPad mini 
if ([platform isEqualToString:@"iPad2,5"]) return @"iPadmini1G"; 
if ([platform isEqualToString:@"iPad2,6"]) return @"iPadmini1G"; 
if ([platform isEqualToString:@"iPad2,7"]) return @"iPadmini1G"; 
if ([platform isEqualToString:@"iPad4,4"]) return @"iPadmini2"; 
if ([platform isEqualToString:@"iPad4,5"]) return @"iPadmini2"; 
if ([platform isEqualToString:@"iPad4,6"]) return @"iPadmini2"; 
if ([platform isEqualToString:@"iPad4,7"]) return @"iPadmini3"; 
if ([platform isEqualToString:@"iPad4,8"]) return @"iPadmini3"; 
if ([platform isEqualToString:@"iPad4,9"]) return @"iPadmini3"; 
if ([platform isEqualToString:@"iPad5,1"]) return @"iPadmini4"; 
if ([platform isEqualToString:@"iPad5,2"]) return @"iPadmini4"; 
if ([platform isEqualToString:@"i386"]) return @"iPhoneSimulator"; 
if ([platform isEqualToString:@"x86_64"]) return @"iPhoneSimulator"; 
return platform; 
}