在prefix.pch中确定设备类型

时间:2012-12-19 17:16:17

标签: iphone ios ipad

我正在构建一个通用应用程序,并在prefix.pch中包含以下宏,以帮助快速识别类中的设备类型:

#define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad

我很困惑为什么这样做。我的理解是prefix.pch是预编译的,因此IS_IPAD变量的值是在编译时而不是运行时设置的,因此它的值似乎总是针对编译应用程序的设备?或者是为iPhone和iPad编译的通用应用程序?

1 个答案:

答案 0 :(得分:3)

宏在编译期间就像全局搜索和替换。编译时,IS_IPAD的每个实例都会被UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad替换为预处理的一部分。然后编译文件。

因此,您最终会在代码中进行所需的运行时检查。使用此宏只会减少您输入的内容。