2012-05-07 6 views
12

प्रोग्रामेटिक रूप से जांचने के लिए कैसे एक आईपैड के संस्करण/मॉडल (यानी आईपैड 1/2/3) की जांच करने का कोई तरीका है। मैं अपने आईपैड इंटरफेस में एकाधिक ओवरले के साथ कुछ पारदर्शिता का उपयोग कर रहा हूं। आईपैड 2 पर संतोषजनक काम करते समय, एक आईपैड 1 उपयोगकर्ता अनुभव के रूप में अच्छा नहीं देता है। इसलिए मैं आईपैड 1 पर पारदर्शिता को हटाना चाहता हूं, लेकिन मुझे यह जानने का कोई तरीका नहीं मिल रहा है कि मैं किस आईपैड से निपट रहा हूं।आईपैड संस्करण/मॉडल

क्या आईपैड 1 और उच्च संस्करणों के बीच अंतर करने की कोई चाल है जिसमें अधिक शक्तिशाली ग्राफिकल प्रोसेसर है (यानी वर्तमान में आईपैड 2 + 3)?

मैंने पढ़ा है कि यह वेब ब्राउज़र में संभव है, इसलिए कोड में मॉडल संख्या भी प्राप्त करने का एक तरीका होना चाहिए।

उत्तर

12

मैं एक कैमरे की उपस्थिति है, जो आईपैड 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

मैं वास्तव में कुछ भी नहीं बल्कि डीबगिंग के लिए इस कोड पर भरोसा नहीं करता; यह बहुत कम स्तर है और स्पष्ट दस्तावेज की कमी है। ओपी की जरूरतों को पूरा करने के अन्य तरीके हैं। –

1

एरिका Sadun इस के लिए उपयोगिताओं, पर श्रेणियों के रूप में लिखा है। उसके जीथब रेपो uidevice-extension पर उपलब्ध है। UIDevice-Hardware.h/m विशेष रूप से आप जो चाहते हैं वह करता है। आईफोन का समर्थन करता है 5.