关于UI_USER_INTERFACE_IDIOM() & UIDevice.model

使用 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()== UIUserInterfaceIdiomPhone   


 

使用 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, NULL0);

    char *machine= malloc(size);

    sysctlbyname("hw.machine",machine, &size, NULL0);

    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 @"";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值