一般只对设备的iPhone或iPad设备进行判断,那么只需使用
UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad或者UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone即可。
如果要求较高可以用
[[UIDevice currentDevice] systemName];
[[UIDevice currentDevice] systemVersion]; //ios version
[[UIDevice currentDevice] uniqueIdentifier]; //ios5以后弃用的方法。
[[UIDevice currentDevice] model]; // 设备类型 iPad or iphone
[[UIDevice currentDevice] name]; // 机子主人取的名字
[[UIDevice currentDevice] systemVersion]; //ios version
[[UIDevice currentDevice] uniqueIdentifier]; //ios5以后弃用的方法。
[[UIDevice currentDevice] model]; // 设备类型 iPad or iphone
[[UIDevice currentDevice] name]; // 机子主人取的名字
上面的方法很好用,但是有时需要判断具体的设备类型,如iPad1,iPad2,iPhone4,iPhone5等等,那么只能使用以下的这个方法
+ (
NSString
*)deviceString
{
// 需要#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;
}