2012-05-07 4 views
12

iPad 버전/모델 (iPad 1/2/3)을 확인할 수있는 방법이 있습니까? iPad 인터페이스에서 여러 개의 오버레이를 사용하여 투명도를 사용 중입니다. iPad 2에서 만족스럽게 일하는 동안, iPad 1은 좋은 사용자 경험을 제공하지 않습니다. 그래서 iPad 1의 투명도를 제거하고 싶지만 어느 iPad를 다루고 있는지 알 수있는 방법을 찾을 수 없습니다.iPad 버전/모델을 프로그래밍 방식으로 확인하는 방법

더 강력한 그래픽 프로세서 (예 : 현재 iPad 2 + 3)를 사용하는 iPad 1 이상 버전을 구분할 수있는 트릭이 있습니까?

웹 브라우저에서 읽을 수 있으므로 코드에서 모델 번호를 얻을 수있는 방법이 있어야합니다.

답변

12

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"; 

코드에서 온다 : 나는 때문에 아이 패드 1에 사용할 수없는 카메라의 존재를 확인 https://gist.github.com/1323251

+1

+1 멋진 답변입니다! – rishi

+2

어레이가 발명 된 것은 바로이 코드 때문입니다! – trojanfoe

+1

나는이 코드를 디버깅에 의존하지 않을 것이다. 꽤 낮은 수준이고 명시적인 문서가 부족합니다. OP가 필요로하는 것을 성취 할 수있는 다른 방법이 있습니다. –

1

Erica Sadun에는 의 카테고리로 작성된 유틸리티가 있습니다. 그녀의 github repo uidevice-extension에서 사용할 수 있습니다. UIDevice-Hardware.h/m은 당신이 원하는 것을 특별히합니다. iPhone 5를 지원합니다.

관련 문제