2013-02-13 61 views
0

我可以使用預定義的前綴導入文件嗎?#導入包含已定義的前綴(可能爲產品名稱)

例如像這樣(僞代碼)

#import PRODUCT_NAME+"-Config.h"

我想在Xcode的不同目標我的應用程序。每個目標都可以有自己的配置文件。我希望這是自動的,所以如果PRODUCT_NAME位可以成爲實際的目標產品名稱,那將是最好的方式。

感謝您給我的任何幫助。

非常感謝。

+2

你爲什麼不試試? – trojanfoe 2013-02-13 16:22:19

+0

如果您嘗試沒有成功或有問題,請通知我們。 – 2013-02-13 16:26:45

+0

那麼......我猜測如何做到這一點返回了這個:1.你不能用「+」來連接預處理器語句。 2.用'##'連接似乎也不起作用。 '#import CONST ##「-Config.h」'返回'期望文件名'。 3.我不知道如何在預編譯時獲取產品名稱。 – 2013-02-13 16:29:52

回答

1

使用Other C Flags構建設置下的唯一標誌設置每個目標。然後,你可以這樣做:

#if defined(TARGET1) 
    #import "Target1Config.h" 
#elif defined(TARGET2) 
    #import "Target2Config.h" 
#endif 

其中TARGET1TARGET2各自定義僅適用於相應目標的構建設置。

+0

這是一個很好的答案,並且是/是我的備份計劃。但我真正想做的就是讓它自己運行。創建一個新目標,更改產品名稱並創建新配置。如果我不需要,我寧願不必做這個額外的步驟。 :) – 2013-02-13 16:31:14

+0

@ThomasClayson如果你創建一個新的目標,那麼你可能會使用一個新的源目錄,是嗎?因此,只需在該目標源目錄中創建一個'Config.h'文件即可。 **編輯**我看到艾米Worrall已經向你建議,但你會發現它太複雜。 – trojanfoe 2013-02-13 16:51:38

0

只給配置文件完全相同的名稱,但找到他們在不同的文件夾。確保每個配置文件只有適當的目標打勾。然後你可以做#import "Config.h",每次都會使用相關的Config.h。

+0

好主意,但這聽起來對於維護來說非常複雜,尤其是XCode完全不能幫助您維護IRL文件夾結構。 – 2013-02-13 16:32:59

+0

我不覺得它太糟糕。我製作一個映射到每個RL文件夾的Xcode組(在Xcode中選擇組,然後在側欄的第一個選項卡中,通過單擊小白方塊圖標爲其指定「相對於組」的路徑)。 – 2013-02-13 16:54:14

+0

嗯,在這種情況下,這很可能就是我這樣做的方式!看起來似乎沒有更好的選擇,並且它實際上可能有助於將每個目標特定文件放入其自己的文件夾中。感謝您的建議。 – 2013-02-13 17:00:52

相關問題