根据设备类型定义常量

Lol*_*z89 6 iphone constants definition objective-c device

我有一个Constants.h文件,其实际上包含一些全局常量.由于我的应用程序是为iPhone和iPad构建的,我想为两种设备类型定义相同的常量(即具有相同的名称).

有关完整说明:

/******** pseudo code *********/

if (deviceIsIPad){
    #define kPageMargin 20
}
else {
    #define kPageMargin 10
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢.

L.

Max*_*Max 18

在预处理步骤中无法获得设备类型.它在运行时期间动态确定.您有两种选择:

  1. 创建两个不同的目标(分别用于iPhone和iPad)并在那里定义宏.

  2. 创建插入如下表达式的宏:

 #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")
Run Code Online (Sandbox Code Playgroud)