iOS开发中各种版本、设备的区分详解手机开发

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

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/3316.html

(0)
上一篇 2021年7月16日 14:28
下一篇 2021年7月16日 14:28

相关推荐

发表回复

登录后才能评论