使用 UI_USER_INTERFACE_IDIOM() 进行区分  (ios 3.2>=) 无法区分iphone和ipod

if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad){

     //<define your constants here>

  else {

   // <define your constants here>

   }

区分目前UI_USER_INTERFACE_IDIOM()有2个返回值

UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad   

UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhon  

使用 UIDevice.model 进行区分  (ios 2.0>=)

   NSString *deviceType= [UIDevice currentDevice].model;

   

   if([deviceType isEqualToString:@”iPhone”]){

      //iPhone

   }

   else if([deviceType isEqualToString:@”iPodtouch”]) {

     //iPod Touch

   }

   else {

      //iPad

   }

使用系统的一个函数sysctlbyname 来获取设备名称

– (NSString *)platformString

{

   size_t size;

   sysctlbyname(“hw.machine”, NULL,&size, NULL, 0);

   char *machine= malloc(size);

   sysctlbyname(“hw.machine”,machine, &size, NULL, 0);

   NSString *platform= [NSString stringWithUTF8String:machine];

   free(machine);

   if ([platform isEqualToString:@”iPhone1,1″])   return @”iPhone1G”;

   if ([platform isEqualToString:@”iPhone1,2″])   return @”iPhone3G”;

   if ([platform isEqualToString:@”iPhone2,1″])   return @”iPhone3GS”;

   if ([platform isEqualToString:@”iPhone3,1″])   return @”iPhone4″;

  if ([platform isEqualToString:@”iPhone3,3″])   return @”VerizoniPhone 4″;

   if ([platform isEqualToString:@”iPod1,1″])     return @”iPodTouch 1G”;

   if ([platform isEqualToString:@”iPod2,1″])     return @”iPodTouch 2G”;

   if ([platform isEqualToString:@”iPod3,1″])     return @”iPodTouch 3G”;

   if ([platform isEqualToString:@”iPod4,1″])     return @”iPodTouch 4G”;

   if ([platform isEqualToString:@”iPad1,1″])     return @”iPad”;

   if ([platform isEqualToString:@”iPad2,1″])     return @”iPad2 (WiFi)”;

   if ([platform isEqualToString:@”iPad2,2″])     return @”iPad2 (GSM)”;

   if ([platform isEqualToString:@”iPad2,3″])     return @”iPad2 (CDMA)”;

   if ([platform isEqualToString:@”i386″])       return @”Simulator”;

   return @””;

}