2012-02-23 114 views
0

我的Xcode 4.3項目中有兩個目標。每個目標都有自己的X-info.plist文件。我想有兩個窗口(MainWindow.xib),一個用於完整應用程序,另一個用於Lite版本。我爲每個目標設置Main Interface,並在X-info.plist中設置了Main nib file base name,但它不起作用。我錯過了什麼? Thx使用多個窗口的iOS完整版/精簡版版本

+0

我在下面發佈了一個鏈接。如果它不回答你的問題,請解釋更多關於什麼是不工作的。 – 2012-02-23 13:45:19

回答

0

對於不同的目標,您可以輕鬆獲得.xib文件的相同名稱。只要確保具有相同名稱的兩個文件不是同一個目標的成員。他們必須被放置在HD上的不同目錄中以及項目中的不同組中。

還有一個已知的bug與IB(圖片資源等)和多目標:多見於Two targets with separate .xib (image resources with same names)

但這種信息是XCode的4.2.x版,如果不知道/ s的有效的XCode 4.3

+0

嗯......我不認爲我理解第一部分。你說我可以創建兩個具有相同名稱的文件(例如RootViewController.xib)? XCode不允許我這樣做。 – xpepermint 2012-02-23 13:57:00

+0

它應該,我一直在使用它。您必須將它們保存在磁盤上的單獨目錄中,並將項目中的組分開。他們也必須屬於不同的目標(一個用於完整應用程序,一個用於lite應用程序)。 – 2012-02-23 14:00:37

+0

當您將文件添加到項目中時,您可以定義它屬於哪個目標(它可以屬於所有目標或僅包含幾個目標)。對於已經在項目中的文件,您可以通過選擇視圖 - >實用程序 - >文件檢查器來編輯目標成員資格 – 2012-02-23 14:02:45

1

您可以將預處理器宏添加到lite版本LITE=1的目標中。然後在你的代碼中,當您要執行一些不同的東西,你可以使用#ifdef,例如:

NSString *mainWindow; 
#ifdef LITE 
    mainWindow = @"MainWindow_Lite"; 
#else 
    mainWindow = @"MainWindow_Full"; 
#endif 
// Load nib with the name mainWindow. 
// Or load ads in the lite version 
// Or disable functionality in the lite version 
// 

如果你想避免這樣做,並希望使用相同的名稱爲兩個筆尖,你必須添加其中一人是完整目標的成員,另一人是精簡目標的成員。