2012-02-23 115 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 
// 

如果你想避免这样做,并希望使用相同的名称为两个笔尖,你必须添加其中一人是完整目标的成员,另一人是精简目标的成员。