如何以编程方式确定我的应用程序是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