可以从 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 
}

 也可以通过宏定义区分 
#if TARGET_OS_IPHONE 
    // iPhone Device 
#endif 
 
#if TARGET_IPHONE_SIMULATOR 
    // iPhone Simulator 
#endif 
 
#if !TARGET_IPHONE_SIMULATOR 
    // iPhone Device 
#endif

 ios设备版本的区分-iphone3gs,iphone4.... 

ios提供了几种c函数来获得相应信息如下

struct utsname u; 
uname(&u); ///-----get device struct info 
NSString *machine = [NSString stringWithCString: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 
} 

 或者
- (NSString *) platform 
{ 
  size_t size; 
  sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
  char *machine = malloc(size); 
  sysctlbyname("hw.machine", machine, &size, NULL, 0);///-----get device struct info 
 
  /* 
  Possible values: 
  "iPhone1,1" = iPhone 1G 
  "iPhone1,2" = iPhone 3G 
  "iPhone2,1" = iPhone 3GS 
  "iPod1,1"   = iPod touch 1G 
  "iPod2,1"   = iPod touch 2G 
  */ 
  NSString *platform = [NSString stringWithCString:machine]; 
 
  free(machine); 
  return platform; 
} 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

iOS捕捉屏幕截图详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。