预处理器-IF不起作用

Kev*_*ier 2 iphone objective-c ipad c-preprocessor

我正在尝试使用Preprocessor-Ifs检查设备是否为iPad.如果它是iPad,我想定义一些特定于设备的东西,但出于某种原因,如果PP-Constant为真,我无法检入PP-IF.

也许你有个主意?

#ifdef UI_USER_INTERFACE_IDIOM

    #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

#else

    #define IS_IPAD false

#endif



#if IS_IPAD

    #define WIDTH 768
    #define HEIGHT 1024

#else

    #define WIDTH 320
    #define HEIGHT 480

#endif
Run Code Online (Sandbox Code Playgroud)

els*_*ooo 11

在构建应用程序之前,预处理器规则是(惊讶,惊讶)处理.由于它是一个通用应用程序,它还不知道它是在iPad还是iPhone上运行.

用这个:

#ifdef UI_USER_INTERFACE_IDIOM
    #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#else
    #define IS_IPAD false
#endif

#define WIDTH (IS_IPAD ? 768 : 320)
#define HEIGHT (IS_IPAD ? 1024 : 480)
Run Code Online (Sandbox Code Playgroud)