iOS项目设置:它们之间的几个应用略有不同。几个目标

时间:2013-04-09 00:01:16

标签: iphone ios xcode ipad

我有一个iPhone应用程序,现在我被要求创建新产品(应用程序),除了添加一些新功能之外,它将使用此应用程序的主要代码。它不仅仅是PAID / LITE版本,我们还需要2个以上的版本。这是一个政治应用程序,新产品将是相同的应用程序,但有一个新的菜单选项与一些大事件(一个大型活动的应用程序,另一个与不同的事件,等等)。 除此之外,不同的应用程序(包括原始应用程序和基础应用程序)也需要适用于iPad。

不仅内容会发生变化,代码也会发生变化。不同的菜单,以及根据哪个应用程序使用不同事件的新选项。该应用程序使用带有4个选项的TabController。前3个在所有应用程序中都是相同的,第4个可以访问具体事件,具有不同的内容和逻辑。

应用程序的主题(主要是颜色)也会有所不同。

所以我正在阅读,我得到的解决方案是通过设置不同的目标并使用宏根据目标执行一个或另一个部分来重用大部分代码。但这将导致一个充满“If-Else”的脏代码。是否有另一种解决方案或一种设计模式可以更好地做到这一点?

任何帮助都会非常感激。

哈维尔。

1 个答案:

答案 0 :(得分:4)

在Xcode中使用多个目标可以很好地满足您的需求,您可以通过右键单击项目设置中的现有目标并Duplicate在Xcode中创建多个目标。

然后你应该在你的重复目标中添加不同的编译器标志,以便在代码中区分它们。点击您的新目标并将其重命名为您想要的任何内容,转到Build Settings并搜索Apple LLVM compiler 4.2 - Preprocessing,假设您的第二个目标名为TargetB,然后Preprocessor Macros可以{ {1}}。

在您的代码中,您可以使用TARGETB=1为不同的目标编写不同的代码。

#ifdef

您不仅可以在不同的目标中使用不同的代码,还可以使用不同的资源文件,转到每个目标中的#ifdef TARGETB //do something for target B #else //do something else #endif 并查看Build Phases