我试图在IOS模拟器中获取设备的类型。 我有以下代码:
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模拟器中获得类型吗?
答案 0 :(得分: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 :(得分:0)
您也可以尝试以下代码: -
#import <sys/utsname.h>
NSString* deviceName()
{
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
}
答案 2 :(得分: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";