我有一个 Constants.h 文件,实际上它包含一些全局常量。因为我的应用程序是为 iPhone 和 iPad 构建的,所以我想为这两种设备类型定义相同的常量(即具有相同的名称)。
完整的解释:
/******** pseudo code *********/
if (deviceIsIPad){
#define kPageMargin 20
}
else {
#define kPageMargin 10
}
我该怎么做? 谢谢。
大号。
最佳答案
在预处理步骤中不可能获取设备类型。它是在运行时动态确定的。您有两个选择:
创建两个不同的目标(分别针对 iPhone 和 iPad)并在其中定义宏。
创建像这样插入表达式的宏:
#define IS_IPAD (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) #define kMyConstant1 (IS_IPAD ? 100 : 200) #define kMyConstant2 (IS_IPAD ? 210 : 230) #define kMyConstant3 (IS_IPAD ? @"ADASD" : @"XCBX")
关于iphone - 根据设备类型定义常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862052/