2013-01-15 131 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