2012-05-07 61 views
12

是否有方法检查iPad的版本/型号(即iPad 1/2/3)。 我在具有多个叠加层的iPad界面中使用了一些透明度。虽然iPad 2的工作令人满意,但iPad 1并没有给用户带来不错的体验。所以我想删除iPad 1上的透明度,但无法找到一种方法来知道我正在处理哪个iPad。如何以编程方式检查iPad版本/型号

区分iPad 1和具有更强大图形处理器(即当前iPad 2 + 3)的更高版本是否有技巧?

我可以在网页浏览器中阅读它,所以应该有办法在代码中获得型号。

回答

12

我检查相机的存在,这是不是可以在iPad 1。由于2和3具有类似的CPU功能,这对我来说工作得很好(我处于类似的情况,但带有内存)。

if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) 
    NSLog(@"iPad 2 or 3"); 
else 
    NSLog(@"iPad 1"); 
+2

这似乎是最简单的,并会完成这项工作! –

13

我希望这是你所需要的:

NSString *platform = [self platform]; 

    if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; 
    if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; 
    if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; 
    if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; 
    if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon iPhone 4"; 
    if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; 
    if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)"; 
    if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)"; 
    if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (Global)"; 
    if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)"; 
    if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (Global)"; 
    if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6+"; 
    if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6"; 

    if ([platform isEqualToString:@"iPod1,1"])  return @"iPod Touch 1G"; 
    if ([platform isEqualToString:@"iPod2,1"])  return @"iPod Touch 2G"; 
    if ([platform isEqualToString:@"iPod3,1"])  return @"iPod Touch 3G"; 
    if ([platform isEqualToString:@"iPod4,1"])  return @"iPod Touch 4G"; 
    if ([platform isEqualToString:@"iPod5,1"])  return @"iPod Touch 5G"; 

    if ([platform isEqualToString:@"iPad1,1"])  return @"iPad"; 
    if ([platform isEqualToString:@"iPad2,1"])  return @"iPad 2 (WiFi)"; 
    if ([platform isEqualToString:@"iPad2,2"])  return @"iPad 2 (GSM)"; 
    if ([platform isEqualToString:@"iPad2,3"])  return @"iPad 2 (CDMA)"; 
    if ([platform isEqualToString:@"iPad2,4"])  return @"iPad 2 (WiFi)"; 
    if ([platform isEqualToString:@"iPad2,5"])  return @"iPad Mini (WiFi)"; 
    if ([platform isEqualToString:@"iPad2,6"])  return @"iPad Mini (GSM)"; 
    if ([platform isEqualToString:@"iPad2,7"])  return @"iPad Mini (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPad3,1"])  return @"iPad 3 (WiFi)"; 
    if ([platform isEqualToString:@"iPad3,2"])  return @"iPad 3 (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPad3,3"])  return @"iPad 3 (GSM)"; 
    if ([platform isEqualToString:@"iPad3,4"])  return @"iPad 4 (WiFi)"; 
    if ([platform isEqualToString:@"iPad3,5"])  return @"iPad 4 (GSM)"; 
    if ([platform isEqualToString:@"iPad3,6"])  return @"iPad 4 (GSM+CDMA)"; 
    if ([platform isEqualToString:@"iPad4,1"])  return @"iPad Air (WiFi)"; 
    if ([platform isEqualToString:@"iPad4,2"])  return @"iPad Air (Cellular)"; 
    if ([platform isEqualToString:@"iPad4,3"])  return @"iPad Air"; 
    if ([platform isEqualToString:@"iPad4,4"])  return @"iPad Mini 2 (WiFi)"; 
    if ([platform isEqualToString:@"iPad4,5"])  return @"iPad Mini 2 (Cellular)"; 
    if ([platform isEqualToString:@"iPad4,6"])  return @"iPad Mini 2 (Rev)"; 
    if ([platform isEqualToString:@"iPad4,7"])  return @"iPad Mini 3 (WiFi)"; 
    if ([platform isEqualToString:@"iPad4,8"])  return @"iPad Mini 3 (A1600)"; 
    if ([platform isEqualToString:@"iPad4,9"])  return @"iPad Mini 3 (A1601)"; 
    if ([platform isEqualToString:@"iPad5,3"])  return @"iPad Air 2 (WiFi)"; 
    if ([platform isEqualToString:@"iPad5,4"])  return @"iPad Air 2 (Cellular)"; 

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

代码来自:https://gist.github.com/1323251

+1

+1为好答案! – rishi

+2

对于像这样的代码来说,数组就是为它而发明的! – trojanfoe

+1

我不会真的依赖这段代码来调试任何东西;它非常低级,缺乏明确的文档。还有其他方法可以完成OP的需求。 –

1

Erica Sadun有这方面的实用工具,写成类别。可在她的github回购uidevice-extension。 UIDevice-Hardware.h/m明确地做你想要的。支持iPhone 5.