您的位置:首页 > 移动开发 > IOS开发

[学习记录]获取iOS设备类型与系统版本号

2015-05-27 17:27 495 查看
//--------------------------------------------------
// @brief 获取机器产品代数名称,By:御风
// @return 产品代数名称
+(NSString *) getGenerationName:(NSString *)machineName
{
@autoreleasepool
{
//这是LINUX系统放硬件版本的信息的地方
struct utsname systemInfo;

//填充数据结构
uname(&systemInfo);

//获取机器名称
NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

//数据字典
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];

//最新数据来源:https://www.theiphonewiki.com/wiki/Models

//模拟器
[dictionary setObject:@"iPhone Simulator x86"       forKey:@"i386"];
[dictionary setObject:@"iPhone Simulator x64"       forKey:@"x86_64"];

//Apple Watch
[dictionary setObject:@"Apple Watch"                forKey:@"Watch1,1"];
[dictionary setObject:@"Apple Watch"                forKey:@"Watch1,2"];

//Apple TV
[dictionary setObject:@"Apple TV 2G"                forKey:@"AppleTV2,1"];
[dictionary setObject:@"Apple TV 3G"                forKey:@"AppleTV3,1"];
[dictionary setObject:@"Apple TV 3G"                forKey:@"AppleTV3,2"];

//iPad
[dictionary setObject:@"iPad"                       forKey:@"iPad1,1"];
[dictionary setObject:@"iPad 2(WiFi)"               forKey:@"iPad2,1"];
[dictionary setObject:@"iPad 2(GSM)"                forKey:@"iPad2,2"];
[dictionary setObject:@"iPad 2(CDMA)"               forKey:@"iPad2,3"];
[dictionary setObject:@"iPad 2(WiFi+NewChip)"       forKey:@"iPad2,4"];
[dictionary setObject:@"iPad 3(WiFi)"               forKey:@"iPad3,1"];
[dictionary setObject:@"iPad 3(GSM+CDMA)"           forKey:@"iPad3,2"];
[dictionary setObject:@"iPad 3(GSM)"                forKey:@"iPad3,3"];
[dictionary setObject:@"iPad 4(WiFi)"               forKey:@"iPad3,4"];
[dictionary setObject:@"iPad 4(GSM)"                forKey:@"iPad3,5"];
[dictionary setObject:@"iPad 4(GSM+CDMA)"           forKey:@"iPad3,6"];

//iPad Air
[dictionary setObject:@"iPad Air"                   forKey:@"iPad4,1"];
[dictionary setObject:@"iPad Air"                   forKey:@"iPad4,2"];
[dictionary setObject:@"iPad Air"                   forKey:@"iPad4,3"];
[dictionary setObject:@"iPad Air 2"                 forKey:@"iPad5,3"];
[dictionary setObject:@"iPad Air 2"                 forKey:@"iPad5,4"];

//iPad mini
[dictionary setObject:@"iPad mini (WiFi)"           forKey:@"iPad2,5"];
[dictionary setObject:@"iPad mini (GSM)"            forKey:@"iPad2,6"];
[dictionary setObject:@"ipad mini (GSM+CDMA)"       forKey:@"iPad2,7"];
[dictionary setObject:@"iPad mini 2"                forKey:@"iPad4,4"];
[dictionary setObject:@"iPad mini 2"                forKey:@"iPad4,5"];
[dictionary setObject:@"iPad mini 2"                forKey:@"iPad4,6"];
[dictionary setObject:@"iPad mini 3"                forKey:@"iPad4,7"];
[dictionary setObject:@"iPad mini 3"                forKey:@"iPad4,8"];
[dictionary setObject:@"iPad mini 3"                forKey:@"iPad4,9"];

//iPhone
[dictionary setObject:@"iPhone 2G"                  forKey:@"iPhone1,1"];
[dictionary setObject:@"iPhone 3G"                  forKey:@"iPhone1,2"];
[dictionary setObject:@"iPhone 3GS"                 forKey:@"iPhone2,1"];
[dictionary setObject:@"iPhone 4(GSM)"              forKey:@"iPhone3,1"];
[dictionary setObject:@"iPhone 4(GSM Rev A)"        forKey:@"iPhone3,2"];
[dictionary setObject:@"iPhone 4(CDMA)"             forKey:@"iPhone3,3"];
[dictionary setObject:@"iPhone 4S"                  forKey:@"iPhone4,1"];
[dictionary setObject:@"iPhone 5(GSM)"              forKey:@"iPhone5,1"];
[dictionary setObject:@"iPhone 5(GSM+CDMA)"         forKey:@"iPhone5,2"];
[dictionary setObject:@"iPhone 5c(GSM)"             forKey:@"iPhone5,3"];
[dictionary setObject:@"iPhone 5c(Global)"          forKey:@"iPhone5,4"];
[dictionary setObject:@"iphone 5s(GSM)"             forKey:@"iPhone6,1"];
[dictionary setObject:@"iphone 5s(Global)"          forKey:@"iPhone6,2"];
[dictionary setObject:@"iPhone 6"                   forKey:@"iPhone7,2"];
[dictionary setObject:@"iPhone 6 Plus"              forKey:@"iPhone7,1"];

//iPod Touch
[dictionary setObject:@"iPod Touch 1G"              forKey:@"iPod1,1"];
[dictionary setObject:@"iPod Touch 2G"              forKey:@"iPod2,1"];
[dictionary setObject:@"iPod Touch 3G"              forKey:@"iPod3,1"];
[dictionary setObject:@"iPod Touch 4G"              forKey:@"iPod4,1"];
[dictionary setObject:@"iPod Touch 5G"              forKey:@"iPod5,1"];

//从字典数据中取出设备名称
NSString *modelNameString = [dictionary objectForKey:deviceString];;

//无法获取设备名称
if (modelNameString == nil || [modelNameString isEqualToString:@""] || [modelNameString length] <= 0 )
{
//modelNameString = @"UnKnow";
return nil;
}

return modelNameString;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: