知道代码是否为iPhone,iPad或Universal编译

时间:2014-08-21 15:54:53

标签: ios iphone ipad

有没有办法在运行时知道运行的应用程序是仅为iPhone编译,仅限iPad还是通用?

我问这个是因为在编译时你会检查这个盒子,在那里你可以选择iphone,ipad,universal。如果此框存在,则二进制文件中的某些内容将有所不同,因此理论上可以检查它。

enter image description here

不幸的是我没有代码可以显示,因为我甚至不知道如何/从哪里开始。

2 个答案:

答案 0 :(得分:1)

我从

开始
[[NSBundle mainBundle] infoDictionary]

正如@RubberDuck所知,关键是UIDeviceFamily

1 = iPhone

2 = iPad

答案 1 :(得分:0)

作为开发人员,您最初的决定之一就是选择要定位的平台。

假设您是运行应用程序的开发人员并且已经编译了它,如果您选择了Universal,那么您可能需要在代码中确定您正在运行的平台 - iPhone或iPad。

当在iOS 7中需要按平台进行分支时,您可以实现类似于:

的内容
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
     // The device is an iPad
}
else {
     // The device is an iPhone or iPod touch.
}

在视图控制器和自定义视图中监听方向更改,以及使用多个Xib或Storyboard,以及检查成语是一种常态。

但是在iOS 8中,Apple正在推动自动布局和大小类,以便远离这种检查您所使用的设备的概念。您使用的是iOS设备。由于屏幕尺寸等级,您是否需要做任何不同的事情?

当然,如果您的应用程序仅针对iPhone或iPad,那么您无需分支,如果用户从iPhone扩展到iPad,用户将以2x模式运行。