这是检测iPad的正确方法吗?

我可以使用下面的代码来检测我的应用是否在iPad上运行? 我的应用程序需要在iOS 3.0或更高版本上运行。

if([[[UIDevice currentDevice] model] isEqualToString:@"iPad"]){ //Do iPad stuff. } 

在iOS> = 3.2上使用UI_USER_INTERFACE_IDIOM()macros:

 if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { //device is an iPad. } 

在较早的iOS版本中,您可以回退到您的代码,即:

 NSRange ipadRange = [[[UIDevice currentDevice] model] rangeOfString:@"iPad"]; if(ipadRange.location != NSNotFound) { //Do iPad stuff. } 

这种方法是向前兼容的,即如果明年苹果发布了不同的iPad,型号名称可能会改变,但“iPad”这个词肯定会在string内部。

不。 做这个,而不是:

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { // ... }