适配一直是移动开发人员的痛苦之处。那么今天在这里把关于适配中获取设备名称的方法汇合一下。
这是一个类方法,需要导入系统的头文件
#import <sys/utsname.h>
//设备名称
+ (NSString *)getDdeviceName
{
struct utsname systemInfo;
uname(&systemInfo);
NSString *strModel = [NSString stringWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
NSString *identifier = nil;
if ([strModel isEqualToString:@"iPad1,1"])
{
identifier = @"iPad";
}
else if ([strModel isEqualToString:@"iPad2,1"] ||
[strModel isEqualToString:@"iPad2,2"] ||
[strModel isEqualToString:@"iPad2,3"] ||
[strModel isEqualToString:@"iPad2,4"])
{
identifier = @"iPad 2";
}
else if ([strModel isEqualToString:@"iPad3,1"] ||
[strModel isEqualToString:@"iPad3,2"] ||
[strModel isEqualToString:@"iPad3,3"])
{
identifier = @"iPad 3";
}
else if ([strModel isEqualToString:@"iPad3,4"] ||
[strModel isEqualToString:@"iPad3,5"] ||
[strModel isEqualToString:@"iPad3,6"])
{
identifier = @"iPad 4";
}
else if ([strModel isEqualToString:@"iPad4,1"] ||
[strModel isEqualToString:@"iPad4,2"])
{
identifier = @"iPad Air";
}
else if ([strModel isEqualToString:@"iPad2,5"] ||
[strModel isEqualToString:@"iPad2,6"] ||
[strModel isEqualToString:@"iPad2,7"])
{
identifier = @"iPad mini";
}
else if ([strModel isEqualToString:@"iPad4,4"] ||
[strModel isEqualToString:@"iPad4,5"])
{
identifier = @"iPad mini 2";
}
else if ([strModel isEqualToString:@"iPhone1,1"])
{
identifier = @"iPhone 2G";
}
else if ([strModel isEqualToString:@"iPhone1,2"])
{
identifier = @"iPhone 3G";
}
else if ([strModel isEqualToString:@"iPhone2,1"])
{
identifier = @"iPhone 3GS";
}
else if ([strModel isEqualToString:@"iPhone3,1"] ||
[strModel isEqualToString:@"iPhone3,2"] ||
[strModel isEqualToString:@"iPhone3,3"])
{
identifier = @"iPhone 4";
}
else if ([strModel isEqualToString:@"iPhone4,1"])
{
identifier = @"iPhone 4S";
}
else if ([strModel isEqualToString:@"iPhone5,1"] ||
[strModel isEqualToString:@"iPhone5,2"])
{
identifier = @"iPhone 5";
}
else if ([strModel isEqualToString:@"iPhone5,3"] ||
[strModel isEqualToString:@"iPhone5,4"])
{
identifier = @"iPhone 5C";
}
else if ([strModel isEqualToString:@"iPhone6,1"] ||
[strModel isEqualToString:@"iPhone6,2"])
{
identifier = @"iPhone 5S";
}
else if ([strModel isEqualToString:@"iPod1,1"])
{
identifier = @"iPod touch";
}
else if ([strModel isEqualToString:@"iPod2,1"])
{
identifier = @"iPod touch 2";
}
else if ([strModel isEqualToString:@"iPod3,1"])
{
identifier = @"iPod touch 3";
}
else if ([strModel isEqualToString:@"iPod4,1"])
{
identifier = @"iPod touch 4";
}
else if ([strModel isEqualToString:@"iPod5,1"])
{
identifier = @"iPod touch 5";
}
else
{
identifier = @"unknow";
}
return [NSString stringWithFormat:@"ios_%@", identifier];
}