我正试图找到一种方法来检测所使用的设备是否是iPod touch,有没有?
我在iPad上使用这种方法......
if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) {
....
}
答案 0 :(得分:6)
你为什么想知道?如果是因为你想知道是否有相机还是可以拨打电话等,那么你最好通过功能检测(如果苹果公司在某个时候制造带有手机的iPod!),例如Cliff's答案。
如果是出于其他原因并且您确实只是想知道它是iPod还是iPhone,无论实际的设备功能如何,请按照以下方式进行操作:
if ([[UIDevice currentDevice].model isEqualToString:@"iPod touch"])
{
...
}
答案 1 :(得分:0)
我过去经常使用的粗略黑客是查询设备是否可以拨打电话#。我忘记了语法,但应该有像
这样的东西if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:+11111"]]) {
//we have an iphone
} else if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) {
//We have an iPad....
} else {
//We probably have an iPod....
}
老实说,我更喜欢这种方法而不是绝对检测,因为它侧重于设备的功能而不是模型。最好根据设备的功能而不是模型来条件化逻辑,因为您永远不知道将来的iOS设备版本中将引入哪些功能。例如,隐藏视频控件,如果设备类型== iPad在一年多前就已经具有实际意义,但是当iPad2在几个月内推出时会限制其功能。如果您认为仅仅因为设备是iPod,您应该或不应该使用功能X,那么如果添加功能,您将限制产品的进一步版本的功能。