1

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

改变的不仅仅是内容,代码也会改变。不同的菜单,以及具有不同事件的新选项,具体取决于哪个应用程序。该应用程序与具有 4 个选项的 TabController 一起使用。前 3 个在所有应用程序中都相同,第 4 个提供对特定事件的访问,具有不同的内容和逻辑。

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

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

任何帮助将非常感激。

哈维尔。

4

1 回答 1

4

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

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

在您的代码中,您可以使用#ifdef为不同的目标编写不同的代码。

#ifdef TARGETB
 //do something for target B
#else
 //do something else
#endif

您不仅可以在不同的目标中使用不同的代码,还可以使用不同的资源文件,进入Build Phases每个目标并签出Copy Bunle Resources.

于 2013-04-09T04:19:25.950 回答