#if确定.h xcode中的设备类型

ran*_*dom 3 xcode preprocessor if-statement header-files ios

我确信这可能非常容易(或者它无法完成),但我似乎无法找到任何东西.

在我的一个.h文件中,我需要确定该应用程序是在iPad还是iPhone上运行.然后相应地更改#define的值.

理想情况下,我会这样看起来像这样:

#if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone

#define deltaX 10.0
#define theda  15.0
#define threshHold 267.0

#endif

#if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad

#define deltaX 78.1
#define theda  67.2
#define threshHold 453.0

#endif
Run Code Online (Sandbox Code Playgroud)

我不知道该使用什么,非常感谢任何帮助.

感谢您的时间!

bor*_*nid 14

派对有点晚了,但想到我会分享对我有用的东西.

一直在为我工作的解决方案是在某处定义IS_IPAD和IS_IPHONE

#define IS_IPAD   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
Run Code Online (Sandbox Code Playgroud)

然后当需要基于ipad/iphone的其他定义时,做这样的事情

#define deltaX (IS_IPAD? 78: 10)
Run Code Online (Sandbox Code Playgroud)


joe*_*ick 9

遗憾的是,你不能这样做,因为在通用应用程序中,相同的代码在iPhone上运行,就像在iPad上运行一样,所以这个决定必须在运行时进行,而不是在编译时进行.

您应该在头文件中声明这些变量,然后根据值的值在运行时设置它们UI_USER_INTERFACE_IDIOM().