如何在 iOS 10 / Xcode 8 / Swift 3 中子项目或定位多个应用程序等效项

How to subproject or target multiple app equivalents in iOS 10 / Xcode 8 / Swift 3

自从我上次为 iOS 开发以来已经有一段时间了。我想是在 Swift 出来之前。不过,这并不重要。我很好奇我应该为我的雇主做些什么。

我们有一个使用 GPS 跟踪器的产品,除了网络应用程序,我们现在还想提供移动应用程序。我已经创建了我们应用程序的 Android 版本。为此,我使用了一个基础项目,在其中实现了所有功能(例如功能 1 和功能 2)。

然后我创建了另外两个项目,它们将基础项目作为依赖项。这两个项目是我的实际应用程序。 App class 覆盖了基本应用程序 class,它有两个抽象方法 "hasFunction1" 和 "hasFunction2" 这两个 return 我在基本应用程序中使用的布尔值提供某种功能。

我也可以轻松地让每个应用程序的应用程序 class return classes 用于不同的情况,因为这些 classes (subclasses例如活动)在基础项目中实现了它们的基本功能,而应用程序项目仅扩展或覆盖了特定的功能。

现在我想对 iOS 做同样的事情,但这里的情况有所不同。你有直接转到某个 class 的故事板,我不知道我是否应该创建多个项目(比如在 android 应用程序中),或者是否最好使用目标来代替。

您对此有何看法?请记住,我的应用程序几乎相同。唯一的区别是名称,有时应用程序 1 启用了应用程序 2 没有(但将来可能有)的一项功能

这种项目的最佳方法是什么?我不知道如何在 iOS

中解决它

更新

我刚刚有了一个想法,我想听听你对此的看法:

在我的操场上快速测试后,这似乎按我预期的那样工作,但我仍然不确定我是否应该创建一个框架,多个项目 and/or 只是不同的目标:/

我想通了,我基本上有两种选择来实现我想要的。第一个是我在更新我原来的post:

时已经提到的那个

我可以创建一个协议,并在核心中检查 self 是否是协议的一个实例,如果是,则调用协议的一个方法。在我的子项目中,我然后简单地为我的 class 创建一个扩展,它现在实现了我的协议。

我想到的第二种方法是,我可以使用预处理器宏 and/or 环境变量。

我希望这个回答能帮助到和我有同样问题的人。