我在項目目標的Build Settings
的Preprocessor Macros
部分中添加了TEST=1
,並且每當我在代碼中使用它時,預處理器都認爲它沒有被定義。Xcode中的預處理器忽略目標預處理器宏
- ALT +點擊它顯示了一個問號
- 語法着色不工作以及
- 語法自動完成工作不正常
例如,具有:
#if TEST
// a
#else
// b
#endif
有這種行爲:
- 語法着色只適用於
// b
- 語法自動完成僅適用於
// b
這是因爲預處理器不能找到TEST
(即使它定義爲1
,正如我前面提到),所以它將其視爲false
。
有什麼辦法可以解決這些問題嗎?
編輯:
我的使用情況與多個項目目標。因此,假設初始目標名爲First
,其中TEST
預處理器宏定義爲值1
。
如果我創建一個沒有定義預處理宏命名爲Second
另一個項目的目標和要添加一些代碼,它只有在TEST
是(沒有定義false
/)0
,我把它放在#else
塊(// b
)。
知道了語法着色和自動完成工程// b
,它看起來像它工作正常,但由於選擇Second
如果我改變當前目標的First
一個(雙關語意),甚至構建它,它仍然有效。
如果您構建項目,預處理器將檢測編譯時間標誌並顯示着色和自動完成。你嘗試過嗎? – manishg
當然我建立了這個項目。 –
您是否爲調試和發佈做了這件事?它在我的最後。 – manishg