首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

iOS中怎么实现检测苹果设备的类型

2013-02-25 
iOS中如何实现检测苹果设备的类型苹果的每个产品都有几个类型,从iphone到ipod、ipad,而每个产品又有几个类

iOS中如何实现检测苹果设备的类型
苹果的每个产品都有几个类型,从iphone到ipod、ipad,而每个产品又有几个类型,从iphone2G到iphone5,从iPod touch1到iPod touch5,从ipad1到ipad4,只有你想不到的,没有人家做不到的。

但是在做ios开发中如何检测这些类型呢?下边的方法就是CSDN问答中给出的方法,原问题见:http://ask.csdn.net/questions/997

- (NSString *) platformString{
    // Gets a string with the device model
    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); 
    if ([platform isEqualToString:@"iPhone1,1"])    return @"iPhone 2G";
    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,2"])    return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,3"])    return @"iPhone 4 (CDMA)";    
    if ([platform isEqualToString:@"iPhone4,1"])    return @"iPhone 4S";
    if ([platform isEqualToString:@"iPhone5,1"])    return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,2"])    return @"iPhone 5 (GSM+CDMA)";

    if ([platform isEqualToString:@"iPod1,1"])      return @"iPod Touch (1 Gen)";
    if ([platform isEqualToString:@"iPod2,1"])      return @"iPod Touch (2 Gen)";
    if ([platform isEqualToString:@"iPod3,1"])      return @"iPod Touch (3 Gen)";
    if ([platform isEqualToString:@"iPod4,1"])      return @"iPod Touch (4 Gen)";
    if ([platform isEqualToString:@"iPod5,1"])      return @"iPod Touch (5 Gen)";

    if ([platform isEqualToString:@"iPad1,1"])      return @"iPad";
    if ([platform isEqualToString:@"iPad1,2"])      return @"iPad 3G";
    if ([platform isEqualToString:@"iPad2,1"])      return @"iPad 2 (WiFi)";
    if ([platform isEqualToString:@"iPad2,2"])      return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,3"])      return @"iPad 2 (CDMA)";
    if ([platform isEqualToString:@"iPad2,4"])      return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,5"])      return @"iPad Mini (WiFi)";


    if ([platform isEqualToString:@"iPad2,6"])      return @"iPad Mini";
    if ([platform isEqualToString:@"iPad2,7"])      return @"iPad Mini (GSM+CDMA)";
    if ([platform isEqualToString:@"iPad3,1"])      return @"iPad 3 (WiFi)";
    if ([platform isEqualToString:@"iPad3,2"])      return @"iPad 3 (GSM+CDMA)";
    if ([platform isEqualToString:@"iPad3,3"])      return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,4"])      return @"iPad 4 (WiFi)";
    if ([platform isEqualToString:@"iPad3,5"])      return @"iPad 4";
    if ([platform isEqualToString:@"iPad3,6"])      return @"iPad 4 (GSM+CDMA)";

    if ([platform isEqualToString:@"i386"])         return @"Simulator";
    if ([platform isEqualToString:@"x86_64"])       return @"Simulator";
    return platform;
}



[解决办法]
   不错  ,呵呵!!!!
[解决办法]
UIDevice
[解决办法]
学习了。这个挺有用的。
[解决办法]
支持原创,不错 
[解决办法]
苹果的每个产品都有几个类型,从iphone到ipod、ipad,
[解决办法]
bu gong a   
[解决办法]
么,,,看的好晕啊
[解决办法]
这个没有什么用呀  主要区分的目的在于屏幕的分辨率
point一样就没有区分的必要了
[解决办法]
看一看长长见识
[解决办法]
非常给力,谢谢楼主分享 
[解决办法]
iOS中怎么实现检测苹果设备的类型
[解决办法]
楼主威武~啊哈哈哈
[解决办法]
支持你一个iOS中怎么实现检测苹果设备的类型
[解决办法]
谢谢了,我好能用上!
[解决办法]
支持  学习了
[解决办法]
这么多if看着不舒服,改进一下。

- (NSString *) platformString{


    // Gets a string with the device model
    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); 
static NSDictionary* d = nil;
if (d == nil)
{
d = @{
@"iPhone1,1": @"iPhone 2G",
@"iPhone1,2": @"iPhone 3G",
@"iPhone2,1": @"iPhone 3GS",
@"iPhone3,1": @"iPhone 4",
@"iPhone3,2": @"iPhone 4",
@"iPhone3,3": @"iPhone 4 (CDMA)",    
@"iPhone4,1": @"iPhone 4S",
@"iPhone5,1": @"iPhone 5",
@"iPhone5,2": @"iPhone 5 (GSM+CDMA)",
 
@"iPod1,1": @"iPod Touch (1 Gen)",
@"iPod2,1": @"iPod Touch (2 Gen)",
@"iPod3,1": @"iPod Touch (3 Gen)",
@"iPod4,1": @"iPod Touch (4 Gen)",
@"iPod5,1": @"iPod Touch (5 Gen)",
 
@"iPad1,1": @"iPad",
@"iPad1,2": @"iPad 3G",
@"iPad2,1": @"iPad 2 (WiFi)",
@"iPad2,2": @"iPad 2",
@"iPad2,3": @"iPad 2 (CDMA)",
@"iPad2,4": @"iPad 2",
@"iPad2,5": @"iPad Mini (WiFi)",
@"iPad2,6": @"iPad Mini",
@"iPad2,7": @"iPad Mini (GSM+CDMA)",
@"iPad3,1": @"iPad 3 (WiFi)",
@"iPad3,2": @"iPad 3 (GSM+CDMA)",
@"iPad3,3": @"iPad 3",
@"iPad3,4": @"iPad 4 (WiFi)",
@"iPad3,5": @"iPad 4",
@"iPad3,6": @"iPad 4 (GSM+CDMA)",
 
@"i386": @"Simulator",
@"x86_64": @"Simulator"
};
}
    NSString* ret = [d objectForKey: platForm];
if (ret == nil)
{
return platForm;
}
return ret;
}


[解决办法]
果断switch!
[解决办法]
威武,谢谢啦

热点排行