2012-04-04 37 views
0

我想定义一些变量取决于它是否在Iphone或Ipad应用程序上运行。所以我写了这个代码如何定义变量取决于条件在XCode

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

但在iPhone和iPad这表明123

+0

也许你不能定义,但另一种方法是使用NSString或int或其他变量和setvalues init。 – 2012-04-04 10:49:09

+0

@cat请参阅下面@sch的答案。你需要学习和理解'#define'的用途。 – 2012-04-04 14:08:47

回答

2

尝试了这一点:

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

这应该很好地工作适合你。

+0

它可能工作,但没有必要。更好地了解如何使用#define以及它的用途。 – 2012-04-04 14:07:56

3

#define告诉预处理器与它相关的值修改源代码的ABC每次发生。

ABC将与所有随后的线#define ABC @"122"线@"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); 
+0

但是因为我想在pch文件中设置一些静态变量,我该怎么做? – cat 2012-08-04 16:20:38