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

时间:2010-12-31 02:39:56

标签: objective-c ipad ios

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

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

2 个答案:

答案 0 :(得分:28)

使用iOS上的UI_USER_INTERFACE_IDIOM()宏> = 3.2:

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”这个词肯定会在字符串内部。

答案 1 :(得分:5)

不。这样做:

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