如何定义变量取决于XCode中的条件

时间:2012-04-04 10:40:12

标签: iphone ios xcode ipad

我想定义一些变量取决于它是在Iphone还是Ipad应用程序上运行。所以我写了这段代码

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    #define ABC @"122"
    NSLog(@"Ipad");
} else {
    #define ABC @"123"
    NSLog(@"iphone ");
}
NSLog(@" %@", ABC);

但在iphone和Ipad中都显示了123.

2 个答案:

答案 0 :(得分:3)

#define告诉预处理器通过与之关联的值修改源代码中ABC的每次出现。

ABC将替换为@"122"后面的所有行中的#define ABC @"122"和行@"123"后面所有行中的#define ABC @"123"

此步骤在构建时发生,而不是在运行时发生。因此,您应将ABC定义为字符串,并将其值设置如下:

NSString *ABC;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    ABC = @"122";
    NSLog(@"Ipad");
} else {
    ABC = @"123";
    NSLog(@"iphone ");
}
NSLog(@"%@", ABC);

答案 1 :(得分:3)

试试这个:

#define ABC (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? @"122" : @"123")

这应该适合你。