Best way to programmatically detect iPad/iPhone hardware

Posted by Adam Eberbach on Stack Overflow See other posts from Stack Overflow or by Adam Eberbach
Published on 2010-05-19T00:41:29Z Indexed on 2010/05/19 0:50 UTC
Read the original article Hit count: 1002

Filed under:
|
|
|

The reason I need to find out is that on an iPad, a UIPickerView has the same height in landscape orientation as it does in portrait. On an iPhone it is different. The iPad programming guide introduces an "idiom" value to UIDevice:

    UIDevice* thisDevice = [UIDevice currentDevice];
    if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
        // iPad
    }
    else
    {
        // iPhone
    }

which works OK while you're in iPad (3.2) but not iPhone (3.1.3) - so it looks like there also needs to be an ifdef to conditionally compile that check, like:

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200
        UIDevice* thisDevice = [UIDevice currentDevice];
        if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
        {
            // etc.
        }
#endif

To me that's starting to look very clumsy. What's a better way?

© Stack Overflow or respective owner

Related posts about iphone

Related posts about ipad