2015-09-27 30 views
0

我想通過使用這3個變量來定義構建的類型,但由於某種原因,它總是使用第一個。有任何想法嗎?#define在.pch文件不起作用

// Pay attention: only ONE of these modes MUST be chosen. 
// 
// 
#define DEVELOPMENT 0 
#define PRODUCTION 1 
#define STORE 0 

這是我如何使用它:

#ifdef DEVELOPMENT 
    NSLog(@"Development version built."); 
#elif STORE 
    NSLog(@"Store version built."); 
#else 
    NSLog(@"Distribution version built."); 
#endif 

它總是進入第一IFDEF ..

+0

因爲它是「定義」的,不是嗎?嘗試評論開發和存儲行,然後重試。 – EDUsta

+0

評論在定義部分的開發和存儲? –

+0

是的,但我會建議改變你的方法,因爲你想比較宏的值。你目前的問題是你正在檢查它們是否被「定義」,你沒有比較這些值。 – EDUsta

回答

3

我得到了你想要做什麼。你必須這樣做有點不同。你要做這樣的:

#if DEVELOPMENT 
    NSLog(@"Development version built."); 
#elif STORE 
    NSLog(@"Store version built."); 
#else 
    NSLog(@"Distribution version built."); 
#endif 

Bacause作爲@EDUsta曾表示,#ifdef檢查,如果該宏被定義的。如果是 - 那麼它將被評估爲true。在你的情況下,你必須檢查價值,所以你必須使用#if

+0

我愛你的男人!謝謝!這樣一個簡單的修復,我只是花了幾個小時.. –

+0

我們都有這種類型的「簡單」的問題,不時擔心:) – Soberman