如何在iOS 10 / Xcode 8 / Swift 3

时间:2016-11-01 01:22:14

标签: android ios xcode target

自从我上次为iOS开发以来,它已经有一段时间了。我想是在Swift问世之前。但是,这并不重要。我很好奇我将为我的雇主做的事情。

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

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

我也可以轻松地让每个应用程序的App类返回不同情况的类,因为这些类(例如活动的子类)在基础项目中实现了它们的基本功能,而app项目只扩展或覆盖某个部分功能。

现在我想为iOS做同样的事情但这里的情况有所不同。你有直接去某个类的故事板,我不知道我是否应该创建多个项目(比如在Android应用程序中),或者是否更好地使用目标。

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

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

更新

我刚才有了一个想法,我想听听你的意见:

  • 有一个协议,一个简单的协议,例如只有一个方法返回一个布尔
  • 在基类中,检查self是否正在实现协议,如果是,则调用该方法。使用返回值确定函数是否可用
  • 为每个应用创建多个目标
  • 在每个目标中,为我的基类创建一个实现protocoll
  • 的扩展

在我的操场上进行快速测试之后,这似乎与我期望的一样,但我仍然不确定是否应该创建一个框架,多个项目和/或只是不同的目标:/

enter image description here

1 个答案:

答案 0 :(得分:0)

我想通了,我基本上有两个选择来实现我想要的。第一个是我在原帖的更新中已经提到的那个:

我可以创建一个协议,在核心中,我检查self是否是protocoll的一个实例,如果是,则调用协议上的方法。在我的子项目中,我只是为我的类创建一个扩展,现在它实现了我的协议。

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

我希望这个答案可以帮助其他人解决与我相同的问题。