- if(UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad)
- {
- //iPad
- }
- else
- {
- //iPhone or iTouch
- }
if(UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad)
{
//iPad
}
else
{
//iPhone or iTouch
}
请注意,如果你在创建项目的时候只支持一种设备类型,上面的语句将始终返回选定ios设备类型,如项目只支持iPhone,即使在iPad上运行,前述的代码依然返回iPhone设备类型。
执行环境
我们可以从 UIDevice 的属性 model 得到在现在执行的环境。
- NSString *modelname = [[UIDevice currentDevice]model];
- if ([modelname isEqualToString:@"iPhone"]) {
- // iPhone
- }
- if ([modelname isEqualToString:@"IPod Touch"]) {
- // iPod touch}
- if ([modelname isEqualToString:@"iPhone Simulator"]) {
- // iPhone Simulator
- }
NSString *modelname = [[UIDevice currentDevice]model];
if ([modelname isEqualToString:@"iPhone"]) {
// iPhone
}
if ([modelname isEqualToString:@"IPod Touch"]) {
// iPod touch}
if ([modelname isEqualToString:@"iPhone Simulator"]) {
// iPhone Simulator
}
或者也可以这样:
- #import <TargetConditionals.h>
- #if TARGET_OS_IPHONE
- // iPhone Device
- #endif
- #if TARGET_IPHONE_SIMULATOR
- // iPhone Simulator
- #endif
- #if !TARGET_IPHONE_SIMULATOR
- // iPhone Device
- #endif
#import <TargetConditionals.h>
#if TARGET_OS_IPHONE
// iPhone Device
#endif
#if TARGET_IPHONE_SIMULATOR
// iPhone Simulator
#endif
#if !TARGET_IPHONE_SIMULATOR
// iPhone Device
#endif
iPhone 机器版本的区分
可以通过 uname 函数取得当前机器的版本。
- struct utsname u;
- uname(&u);
- NSString *machine = [NSStringstringWithCString:u.machine];
- if ([machine isEqualToString:@"iPhone1,1"]) {
- // iPhone 1G
- }
- if ([machine isEqualToString:@"iPhone1,2"]) {
- // iPhone 3G
- }
- if ([machine isEqualToString:@"iPhone2,1"]) {
- // iPhone 3GS
- }
- if ([machine isEqualToString:@"iPod1,1"]) {
- // iPod touch 1G
- }
- if ([machine isEqualToString:@"iPod2,1"]) {
- // iPod touch 2G
- }
- if([machine isEqualToString:@"iPod3,1"]) {
- // iPod touch Late2009
- }
struct utsname u;
uname(&u);
NSString *machine = [NSStringstringWithCString:u.machine];
if ([machine isEqualToString:@"iPhone1,1"]) {
// iPhone 1G
}
if ([machine isEqualToString:@"iPhone1,2"]) {
// iPhone 3G
}
if ([machine isEqualToString:@"iPhone2,1"]) {
// iPhone 3GS
}
if ([machine isEqualToString:@"iPod1,1"]) {
// iPod touch 1G
}
if ([machine isEqualToString:@"iPod2,1"]) {
// iPod touch 2G
}
if([machine isEqualToString:@"iPod3,1"]) {
// iPod touch Late2009
}
iPhone OS 版本区分
可以使用 UIDevice 的属性 systemVersion 来得到。
- NSString *osversion = [UIDevice currentDevice].systemVersion;
- if ([osversion isEqualToString:@"2.1"]) {
- // iPhone
- }
- if ([osversion isEqualToString:@"2.2.1"])
- {
- // iPod touch
- }
- if ([osversion isEqualToString:@"3.0"]) {
- // iPhone Simulator
- }
NSString *osversion = [UIDevice currentDevice].systemVersion;
if ([osversion isEqualToString:@"2.1"]) {
// iPhone
}
if ([osversion isEqualToString:@"2.2.1"])
{
// iPod touch
}
if ([osversion isEqualToString:@"3.0"]) {
// iPhone Simulator
}