2013-01-15 86 views
1

在我的代码,我有一些条件语句:定义在Xcode目标预处理宏

#ifndef SOME_FLAG 

// ... 

#endif 

在Xcode项目,在靶>构建设置 - >预处理器宏:

我添加到Debug和Release还有AppStore的,我成立了一个较早预处理宏: SOME_FLAG

(该DEBUG已经DEBUG=1 DEBUG=1集(如一个条目!),我addded SOME_FLAG的另一个入口

但它没有为我工作。 #ifndef #endif块仍然进入!我究竟做错了什么?

+0

为什么不'如果您在所有配置设置中使用它,您是否在.pch文件中定义该变量? –

+0

你的意思是说你的#ifndef块每次都被编译? –

+0

这不是按预期工作吗? #ifndef的意思是“如果未定义”,但是您为Debug和Release版本定义了SOME_FLAG,所以定义了SOME_FLAG。 – zpasternack

回答

0

您可以向SOME_FLAG 增加值调试,App Store的&发行原样

调试:SOME_FLAG = 0

版本:SOME_FLAG = 1

的App Store:SOME_FLAG = 2

#if SOME_FLAG == 0 
NSString *appType = @"Debug Build" ; 
#elif SOME_FLAG == 1 
NSString *appType = @"Release Build" ; 
#else 
NSString *appType = @"App Store Build" ; 
#endif 

NSLog(@"My App Build is %@",appType); //My App Build is Release Build