确定ipad设备

时间:2010-07-08 10:12:21

标签: iphone ipad

我正在为iphone和ipad编写通用应用程序。如何确定设备是否为iPad。我使用此链接来确定iPhone类型(3G,3GS)。

Determine device (iPhone, iPod Touch) with iPhone SDK

5 个答案:

答案 0 :(得分:33)

强烈建议您不要使用设备类型检测来确定应用程序是否在iPad上运行,而是要检查功能或用户界面惯用语。许多针对特定设备类型进行测试的应用程序在新硬件出现时会中断(这往往非常频繁)。

通常,如果您需要确定某个应用程序是否在iPad上运行,那是因为您需要调整用户界面以匹配设备的较大显示区域。为此,Apple建议您使用以下代码检查用户界面习语:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    // iPad-specific interface here
}
else
{
    // iPhone and iPod touch interface here
}

答案 1 :(得分:4)

布拉德的解决方案是绝对正确的。如果您正在构建一个通用应用程序,该应用程序设计为在具有较旧操作系统的iPhone以及最新的iPad和iPhone上运行,您可能需要添加此代码以捕获未定义成语的情况。

// If iPhoneOS is 3.2 or greater then __IPHONE_3_2 will be defined
#ifndef __IPHONE_3_2    

typedef enum {
    UIUserInterfaceIdiomPhone,           // iPhone and iPod touch
    UIUserInterfaceIdiomPad,             // iPad
} UIUserInterfaceIdiom;

#define UI_USER_INTERFACE_IDIOM() UIUserInterfaceIdiomPhone

#endif // ifndef __IPHONE_3_2

答案 2 :(得分:2)

这是我得到的最佳答案:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    //iPhone methods
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    //iPad methods
}

答案 3 :(得分:1)

试试这个

     if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
        {
            // etc.
        }
     else
        {
        //iphone
         }

答案 4 :(得分:0)

if ( [(NSString*)[UIDevice currentDevice].model isEqualToString:@"iPad"] ) {
            NSLog(@"...in iPad");         
} else {
            NSLog(@"...in iPhone/iPod");              
}