iOS中如何实现检测苹果设备的类型

问答小助手 2013-01-06 11:25:09
加精
苹果的每个产品都有几个类型,从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;
}

...全文
2740 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwq2jxl 2013-03-01
  • 打赏
  • 举报
回复
有用的资料 mark一下
vikiliu0310 2013-01-14
  • 打赏
  • 举报
回复
引用 40 楼 Abdisamad 的回复:
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) 判断是不是iPhone 5 其他设备多判断没意思..
有时候需要判断系统版本~,我觉得用UIDevice也不错
zwq905378134 2013-01-10
  • 打赏
  • 举报
回复
zucknet 2013-01-10
  • 打赏
  • 举报
回复
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) 判断是不是iPhone 5 其他设备多判断没意思..
斷了的弦 2013-01-10
  • 打赏
  • 举报
回复
楼主给力,分享快乐,呵呵
q1659523370 2013-01-09
  • 打赏
  • 举报
回复
不错 ,呵呵!!!!
AQINGHENRY 2013-01-09
  • 打赏
  • 举报
回复
谢谢,知识又长进了.
diamond_back 2013-01-09
  • 打赏
  • 举报
回复
很强大,谢谢楼主
LIANGYIZHI999 2013-01-08
  • 打赏
  • 举报
回复
支持原创,不错
相奇 2013-01-08
  • 打赏
  • 举报
回复
呵呵~!
djames2098 2013-01-08
  • 打赏
  • 举报
回复
这么给力!!
yuhuangc 2013-01-08
  • 打赏
  • 举报
回复
凌云鹤 2013-01-08
  • 打赏
  • 举报
回复
这样哈?其实我还是不知道怎样鉴定设备型号。但是知道怎么获得了
王教 2013-01-08
  • 打赏
  • 举报
回复
谢谢了,能用
q8858258q 2013-01-07
  • 打赏
  • 举报
回复
非常给力,谢谢楼主分享
extra_721 2013-01-07
  • 打赏
  • 举报
回复
威武,谢谢啦
a5282134 2013-01-07
  • 打赏
  • 举报
回复
支持你一个
noaighost 2013-01-07
  • 打赏
  • 举报
回复
果断switch!
sjm6555 2013-01-07
  • 打赏
  • 举报
回复
楼主威武~啊哈哈哈
nettman 2013-01-07
  • 打赏
  • 举报
回复
加载更多回复(14)

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧