我有一個項目,我分裂成兩個目標。最初的單目標項目使用了一些定義命令,但是我需要這些值現在會根據我構建的目標而不同。如何爲我的兩個不同的目標指定#define命令
什麼是正確的方法來做到這一點?我應該使用AppDelegate中聲明的NStrings嗎?或者我可以在設置#defines時使用#if語句嗎?
任何幫助,非常感謝。
我有一個項目,我分裂成兩個目標。最初的單目標項目使用了一些定義命令,但是我需要這些值現在會根據我構建的目標而不同。如何爲我的兩個不同的目標指定#define命令
什麼是正確的方法來做到這一點?我應該使用AppDelegate中聲明的NStrings嗎?或者我可以在設置#defines時使用#if語句嗎?
任何幫助,非常感謝。
一種方法是這樣的:
#if defined(MON_TARGET_A)
#define MON_TARGET_NAME "App A"
#elif defined(MON_TARGET_B)
#define MON_TARGET_NAME "App B"
#else
#error "which target are you building?"
#endif
然後加入MON_TARGET_A
或MON_TARGET_B
到您的目標的預處理器設置。
通常,您將使用GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
而不是GCC_PREPROCESSOR_DEFINITIONS
,因爲後者會阻止共享PCH標頭。
要添加此,請訪問:
然後刪除GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
進入搜索領域,並將其值設置爲一樣的東西: MON_TARGET_A $(inherited)
您可以在目標設置(預處理 - >預處理器宏)中添加額外的預處理器宏,並使用#ifdef。
這是最靈活的方法。
Max!你很好,但賈斯汀先到那裏。先生,謝謝! – theDuncs 2012-02-07 11:07:22
賈斯汀!謝謝!那釘了它。你達人! – theDuncs 2012-02-07 11:06:47
@DuncanCampbell歡迎您 - 歡呼聲:) – justin 2012-02-07 11:10:41
爲什麼MON _...前綴只是出於好奇? – 2012-02-07 11:13:17