objective-c - 预处理器-IF 不起作用

标签 objective-c iphone ipad c-preprocessor

我正在尝试使用 Preprocessor-Ifs 检查设备是否为 iPad。如果它是 iPad,我想定义一些特定于设备的内容,但由于某种原因,我无法检查 PP-IF 是否 PP-Constant 为 true。

也许你有什么想法?

#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

最佳答案

预处理器规则是在构建应用程序之前处理的(令人惊讶,令人惊讶)。由于它是通用应用程序,因此尚不知道它是在 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)

关于objective-c - 预处理器-IF 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7027168/

相关文章:

ios - HealthKit iTunes Connect 授权错误

objective-c - 如果对象respondsTo仍然抛出警告

ios - 通过 plist 的 TableView 部分

iphone - 如何将 Corona 与现有 Xcode 项目集成

iphone - 如何在 iOS 中使 uiscrollview 无限?

iphone - UISearchBar 代表不响应取消按钮

iphone - 如何使用 Delphi Firemonkey 在 iPhone 应用程序上使用手势?

ios - tableView 中不显示评论

ipad - 改变ipad的亮度

iphone - Apple 是否已经在 Xcode 4 中解决了这些问题?