ios开发 获取终端的类别信息

1、用于获取终端信息的方法

+ (NSString *) platform
{  
    size_t size;  
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);  
    char *machine = malloc(size);  
    sysctlbyname("hw.machine", machine, &size, NULL, 0);  
    NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];  
    free(machine);  
    return platform;  
}

2、该方法输出的数据格式大概形于 

  iPhone3,1

  i386

  逗号后面数字解释:(i386是指模拟器)
  1-WiFi版
  2-GSM/WCDMA 3G版
  3-CDMA版

  (此知识点选自于博客

3、输入设备的类别信息

#pragma mark 获取终端信息
+ (NSString *) platformString
{  
    NSString *platform = [self platform];  
    if ([platform isEqualToString:@"iPhone1,1"])    return @"iPhone 1G";  
    if ([platform isEqualToString:@"iPhone1,2"])    return @"iPhone 3G";  
    if ([platform isEqualToString:@"iPhone2,1"])    return @"iPhone 3GS";  
    if ([platform isEqualToString:@"iPhone3,1"])    return @"iPhone 4"; 
    if ([platform isEqualToString:@"iPhone3,3"])    return @"iPhone 4 CDMA版";
    if ([platform isEqualToString:@"iPhone4,1"])    return @"iPhone 4S";
    if ([platform isEqualToString:@"iPod1,1"])      return @"iPod Touch 1G";  
    if ([platform isEqualToString:@"iPod2,1"])      return @"iPod Touch 2G";  
    if ([platform isEqualToString:@"iPod3,1"])      return @"iPod Touch 3G";  
    if ([platform isEqualToString:@"iPod4,1"])      return @"iPod Touch 4G";  
    if ([platform isEqualToString:@"iPad1,1"])      return @"iPad";  
    if ([platform isEqualToString:@"iPad2,1"])      return @"iPad2 WIFI版";
    if ([platform isEqualToString:@"iPad2,2"])      return @"iPad2 GSM/3G版";
    if ([platform isEqualToString:@"iPad2,3"])      return @"iPad2 CDMA/3G版";
    if ([platform isEqualToString:@"i386"] || [platform isEqualToString:@"x86_64"])        
        return @"iPhone Simulator";  
    return platform;  
} 
posted @ 2012-04-10 09:29  ahutzh  阅读(506)  评论(0)    收藏  举报