有没有办法在运行时知道运行的应用程序是仅为iPhone编译,仅限iPad还是通用?
我问这个是因为在编译时你会检查这个盒子,在那里你可以选择iphone,ipad,universal。如果此框存在,则二进制文件中的某些内容将有所不同,因此理论上可以检查它。
不幸的是我没有代码可以显示,因为我甚至不知道如何/从哪里开始。
答案 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模式运行。