各种设备型号的判定

获取设备型号往往是开发过程中必须的参数,下面这个方法可以获取当前苹果手机的类型名称:


//获得设备型号

- (NSString *)deviceModelString

{

   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 = [NSStringstringWithCString:machine encoding:NSASCIIStringEncoding];

   free(machine);

    

    if ([platformisEqualToString:@"iPhone1,1"])return @"iPhone 2G (A1203)";

    if ([platformisEqualToString:@"iPhone1,2"])return @"iPhone 3G (A1241/A1324)";

    if ([platformisEqualToString:@"iPhone2,1"])return @"iPhone 3GS (A1303/A1325)";

    if ([platformisEqualToString:@"iPhone3,1"])return @"iPhone 4 (A1332)";

    if ([platformisEqualToString:@"iPhone3,2"])return @"iPhone 4 (A1332)";

    if ([platformisEqualToString:@"iPhone3,3"])return @"iPhone 4 (A1349)";

    if ([platformisEqualToString:@"iPhone4,1"])return @"iPhone 4S (A1387/A1431)";

    if ([platformisEqualToString:@"iPhone5,1"])return @"iPhone 5 (A1428)";

    if ([platformisEqualToString:@"iPhone5,2"])return @"iPhone 5 (A1429/A1442)";

    if ([platformisEqualToString:@"iPhone5,3"])return @"iPhone 5c (A1456/A1532)";

    if ([platformisEqualToString:@"iPhone5,4"])return @"iPhone 5c (A1507/A1516/A1526/A1529)";

    if ([platformisEqualToString:@"iPhone6,1"])return @"iPhone 5s (A1453/A1533)";

    if ([platformisEqualToString:@"iPhone6,2"])return @"iPhone 5s (A1457/A1518/A1528/A1530)";

    if ([platformisEqualToString:@"iPhone7,1"])return @"iPhone 6 Plus (A1522/A1524)";

    if ([platformisEqualToString:@"iPhone7,2"])return @"iPhone 6 (A1549/A1586)";

    

    if ([platformisEqualToString:@"iPod1,1"])  return @"iPod Touch 1G (A1213)";

    if ([platformisEqualToString:@"iPod2,1"])  return @"iPod Touch 2G (A1288)";

    if ([platformisEqualToString:@"iPod3,1"])  return @"iPod Touch 3G (A1318)";

    if ([platformisEqualToString:@"iPod4,1"])  return @"iPod Touch 4G (A1367)";

    if ([platformisEqualToString:@"iPod5,1"])  return @"iPod Touch 5G (A1421/A1509)";

    

    if ([platformisEqualToString:@"iPad1,1"])  return @"iPad 1G (A1219/A1337)";

    

    if ([platformisEqualToString:@"iPad2,1"])  return @"iPad 2 (A1395)";

    if ([platformisEqualToString:@"iPad2,2"])  return @"iPad 2 (A1396)";

    if ([platformisEqualToString:@"iPad2,3"])  return @"iPad 2 (A1397)";

    if ([platformisEqualToString:@"iPad2,4"])  return @"iPad 2 (A1395+New Chip)";

    if ([platformisEqualToString:@"iPad2,5"])  return @"iPad Mini 1G (A1432)";

    if ([platformisEqualToString:@"iPad2,6"])  return @"iPad Mini 1G (A1454)";

    if ([platformisEqualToString:@"iPad2,7"])  return @"iPad Mini 1G (A1455)";

    

    if ([platformisEqualToString:@"iPad3,1"])  return @"iPad 3 (A1416)";

    if ([platformisEqualToString:@"iPad3,2"])  return @"iPad 3 (A1403)";

    if ([platformisEqualToString:@"iPad3,3"])  return @"iPad 3 (A1430)";

    if ([platformisEqualToString:@"iPad3,4"])  return @"iPad 4 (A1458)";

    if ([platformisEqualToString:@"iPad3,5"])  return @"iPad 4 (A1459)";

    if ([platformisEqualToString:@"iPad3,6"])  return @"iPad 4 (A1460)";

    

    if ([platformisEqualToString:@"iPad4,1"])  return @"iPad Air (A1474)";

    if ([platformisEqualToString:@"iPad4,2"])  return @"iPad Air (A1475)";

    if ([platformisEqualToString:@"iPad4,3"])  return @"iPad Air (A1476)";

    if ([platformisEqualToString:@"iPad4,4"])  return @"iPad Mini 2G (A1489)";

    if ([platformisEqualToString:@"iPad4,5"])  return @"iPad Mini 2G (A1490)";

    if ([platformisEqualToString:@"iPad4,6"])  return @"iPad Mini 2G (A1491)";

    

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

    if ([platformisEqualToString:@"x86_64"])   return @"iPhone Simulator";

   return platform;

}


你可能感兴趣的:(各种设备型号的判定)