2014-12-01 26 views
1

即使在iOS模擬器中,我也試圖獲取設備的類型。 我有下面的代碼:獲取設備的類型(iPhone 4,5,6,iPod,iPad)

NSLog(@"model: %@",[UIDevice currentDevice].model); 
NSLog(@"description: %@",[UIDevice currentDevice].description); 
NSLog(@"localizedModel: %@",[UIDevice currentDevice].localizedModel); 
NSLog(@"name: %@",[UIDevice currentDevice].name); 
NSLog(@"systemVersion: %@",[UIDevice currentDevice].systemVersion); 
NSLog(@"systemName: %@",[UIDevice currentDevice].systemName); 

該行的任何人,但返回類型,但其只返回iPhone模擬器。 即使在IOS模擬器中有一種獲取類型的方法?

+4

類型*是* iPhone模擬器。如果你想要一個真實的設備類型,然後在真實的設備上運行它。 – Petesh 2014-12-01 20:14:49

回答

0

看看這個代碼,確定設備型號

- (NSString *) platformString{ 

NSLog(@"[UIDevice currentDevice].model: %@",[UIDevice currentDevice].model); 
NSLog(@"[UIDevice currentDevice].description: %@",[UIDevice currentDevice].description); 
NSLog(@"[UIDevice currentDevice].localizedModel: %@",[UIDevice currentDevice].localizedModel); 
NSLog(@"[UIDevice currentDevice].name: %@",[UIDevice currentDevice].name); 
NSLog(@"[UIDevice currentDevice].systemVersion: %@",[UIDevice currentDevice].systemVersion); 
NSLog(@"[UIDevice currentDevice].systemName: %@",[UIDevice currentDevice].systemName); 
NSLog(@"[UIDevice currentDevice].batteryLevel: %f",[UIDevice currentDevice].batteryLevel);  
struct utsname systemInfo; 
uname(&systemInfo); 
NSLog(@"[NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]: %@",[NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]); 
NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; 

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,2"]) return @"iPhone 4 CDMA"; 
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; 
if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5"; 
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 CDMAS"; 
if ([platform isEqualToString:@"iPad2,5"])  return @"iPad Mini Wifi"; 
if ([platform isEqualToString:@"iPad2,6"])  return @"iPad Mini (Wi-Fi + Cellular)"; 
if ([platform isEqualToString:@"iPad2,7"])  return @"iPad Mini (Wi-Fi + Cellular MM)"; 
if ([platform isEqualToString:@"iPad3,1"])  return @"iPad 3 WiFi"; 
if ([platform isEqualToString:@"iPad3,2"])  return @"iPad 3 CDMA"; 
if ([platform isEqualToString:@"iPad3,3"])  return @"iPad 3 GSM"; 
if ([platform isEqualToString:@"iPad3,4"])  return @"iPad 4 Wifi"; 
if ([platform isEqualToString:@"i386"])   return @"Simulator"; 
if ([platform isEqualToString:@"x86_64"])  return @"Simulator"; 
return @"Unknown"; 
} 
+1

我的iPhone 6顯示爲iPhone7,2 FWIW – cdstamper 2014-12-01 21:10:13

0

你可以試試下面的代碼,以及: -

#import <sys/utsname.h> 

NSString* deviceName() 
{ 
    struct utsname systemInfo; 
    uname(&systemInfo); 

    return [NSString stringWithCString:systemInfo.machine 
           encoding:NSUTF8StringEncoding]; 
} 
0

的代碼在接受答案的牆可以大大清理通過使用靜態字典!

NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; 

NSString * result = [@{ 
    @"iPhone1,1": @"iPhone 1G", 
    @"iPhone1,2": @"iPhone 3G", 
    @"iPhone2,1": @"iPhone 3GS", 
    @"iPhone3,1": @"iPhone 4", 
    @"iPhone3,2": @"iPhone 4 CDMA", 
    @"iPhone4,1": @"iPhone 4S", 
    @"iPhone5,1": @"iPhone 5", 
    @"iPhone7,2": @"iPhone 6", 
    @"iPod1,1" : @"iPod Touch 1G", 
    @"iPod2,1" : @"iPod Touch 2G", 
    @"iPod3,1" : @"iPod Touch 3G", 
    @"iPod4,1" : @"iPod Touch 4G", 
    @"iPod5,1" : @"iPod Touch 5G", 
    @"iPad1,1" : @"iPad", 
    @"iPad2,1" : @"iPad 2 WiFi", 
    @"iPad2,2" : @"iPad 2 GSM", 
    @"iPad2,3" : @"iPad 2 CDMA", 
    @"iPad2,4" : @"iPad 2 CDMAS", 
    @"iPad2,5" : @"iPad Mini Wifi", 
    @"iPad2,6" : @"iPad Mini (Wi-Fi + Cellular)", 
    @"iPad2,7" : @"iPad Mini (Wi-Fi + Cellular MM)", 
    @"iPad3,1" : @"iPad 3 WiFi", 
    @"iPad3,2" : @"iPad 3 CDMA", 
    @"iPad3,3" : @"iPad 3 GSM", 
    @"iPad3,4" : @"iPad 4 Wifi", 
    @"i386"  : @"Simulator", 
    @"x86_64" : @"Simulator" 
} objectForKey:platform]; 

if (result) { 
    return result; 
} 

return @"Unknown";