如何以编程方式确定我的应用程序是iPad还是iPhone

如何以编程方式确定我的应用程序是iPad还是iPhone,iphone,objective-c,ipad,Iphone,Objective C,Ipad,我的问题是能够根据所使用的设备动态地包含/排除代码 我需要一些东西 或 `#如果(目标手机) 但要指定设备是ipad还是iphone,这不是条件编译,而是: if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { // iPhone Code } else { // iPad Code } 这只是-userInterfaceIdiom方法的宏。使用UI\u用户界面习惯用法() 它返回UIUserInterfac

我的问题是能够根据所使用的设备动态地包含/排除代码 我需要一些东西

`#如果(目标手机)


但要指定设备是ipad还是iphone,这不是条件编译,而是:

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

这只是-userInterfaceIdiom方法的宏。

使用
UI\u用户界面习惯用法()


它返回
UIUserInterfaceIdiomPhone
UIUserInterfaceIdiomPad

我在我的_prefix.pch文件中定义了两个宏,使整个代码更容易(更可读),因此您可以执行以下操作:

if (iPad) 

代码如下:

#ifndef iPad
    #define iPad    (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#endif
#ifndef iPhone
    #define iPhone  (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad)
#endif

这是否适用于条件编译?是否可能重复???我可以使用这段代码来#包括“SomeIphoneConditionals.h”或#包括“SomeIphoneConditionals.h”??如果你想让它们在你的所有文件中都可用,把这些行放在你的#prefix.pch文件中:)不,我想在特定的类中包括一些头文件,还需要创建一些有条件的方法(例如:我想创建一个在ipad上而不是在iphone上编译的方法)这可能吗?不,这是不可能的。应用程序是在iphone上运行还是在ipad上运行是在运行时确定的。代码是相同的(这就是universal app的意思),所以不能使用条件编译。
if (iPhone)
#ifndef iPad
    #define iPad    (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#endif
#ifndef iPhone
    #define iPhone  (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad)
#endif