該方法用于判斷手機具體機型,如果做屏幕適配因為屏幕分辨率大部分一樣,則不需要這么詳細的判斷,請參考:
IOS 判斷手機型號宏定義
首先導入頭文件
#import "sys/utsname.h"
- (NSString*)deviceVersion
{
struct utsname systemInfo;
uname(&systemInfo);
NSString * deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
//iPhone
if ([deviceString isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([deviceString isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([deviceString isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
if ([deviceString isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([deviceString isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
if ([deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
if ([deviceString isEqualToString:@"iPhone5,3"]) return @"iPhone 5C";
if ([deviceString isEqualToString:@"iPhone5,4"]) return @"iPhone 5C";
if ([deviceString isEqualToString:@"iPhone6,1"]) return @"iPhone 5S";
if ([deviceString isEqualToString:@"iPhone6,2"]) return @"iPhone 5S";
if ([deviceString isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([deviceString isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([deviceString isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([deviceString isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([deviceString isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
if ([deviceString isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";
if([deviceString isEqualToString:@"iPhone10,1"]) return@"iPhone 8";
if([deviceString isEqualToString:@"iPhone10,4"]) return@"iPhone 8";
if([deviceString isEqualToString:@"iPhone10,2"]) return@"iPhone 8 Plus";
if([deviceString isEqualToString:@"iPhone10,5"]) return@"iPhone 8 Plus";
if([deviceString isEqualToString:@"iPhone10,3"]) return@"iPhone X";
if([deviceString isEqualToString:@"iPhone10,6"]) return@"iPhone X";
return deviceString;
}
使用方法:
NSString * phoneModel = [self deviceVersion];
NSLog(@"%@", phoneModel);