| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

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;  }