// 需要#import "sys/utsname.h"
struct
utsname systemInfo;
uname(&systemInfo);
NSString
*deviceString = [
NSString
stringWithCString:systemInfo.machine encoding:
NSUTF8StringEncoding
];
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:@
"iPhone4,1"
])
return
@
"iPhone 4S"
;
if
([deviceString isEqualToString:@
"iPhone5,2"
])
return
@
"iPhone 5"
;
if
([deviceString isEqualToString:@
"iPhone3,2"
])
return
@
"Verizon iPhone 4"
;
if
([deviceString isEqualToString:@
"iPod1,1"
])
return
@
"iPod Touch 1G"
;
if
([deviceString isEqualToString:@
"iPod2,1"
])
return
@
"iPod Touch 2G"
;
if
([deviceString isEqualToString:@
"iPod3,1"
])
return
@
"iPod Touch 3G"
;
if
([deviceString isEqualToString:@
"iPod4,1"
])
return
@
"iPod Touch 4G"
;
if
([deviceString isEqualToString:@
"iPad1,1"
])
return
@
"iPad"
;
if
([deviceString isEqualToString:@
"iPad2,1"
])
return
@
"iPad 2 (WiFi)"
;
if
([deviceString isEqualToString:@
"iPad2,2"
])
return
@
"iPad 2 (GSM)"
;
if
([deviceString isEqualToString:@
"iPad2,3"
])
return
@
"iPad 2 (CDMA)"
;
if
([deviceString isEqualToString:@
"i386"
])
return
@
"Simulator"
;
if
([deviceString isEqualToString:@
"x86_64"
])
return
@
"Simulator"
;
NSLog
(@
"NOTE: Unknown device type: %@"
, deviceString);
return
deviceString;
|
二、 另一种更加暴力的获取设备型号的方法就是直接去读屏幕的长宽
#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height == 568) ? YES : NO)
#define IS_IPhone6 (667 == [[UIScreen mainScreen] bounds].size.height ? YES : NO)
#define IS_IPhone6plus (736 == [[UIScreen mainScreen] bounds].size.height ? YES : NO) 这种方法的好处是更加直接,代码量也少,但是缺点在于 如果没有适配大屏,分辨率永远是 568。
|