0

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

#define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad

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

4

1 回答 1

3

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

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

于 2012-12-19T17:27:28.350 回答