如何在 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
中解决它
更新
我刚刚有了一个想法,我想听听你对此的看法:
- 有一个协议,一个简单的协议,例如只有一个方法returning 一个布尔值
- 在基础 class 中,检查 self 是否正在实现协议,如果是,则调用它的方法。使用 return 值确定函数是否可用
- 创建多个目标,每个应用一个目标
- 在每个目标中,为我的基础创建一个扩展 class 实现协议
在我的操场上快速测试后,这似乎按我预期的那样工作,但我仍然不确定我是否应该创建一个框架,多个项目 and/or 只是不同的目标:/
我想通了,我基本上有两种选择来实现我想要的。第一个是我在更新我原来的post:
时已经提到的那个
我可以创建一个协议,并在核心中检查 self 是否是协议的一个实例,如果是,则调用协议的一个方法。在我的子项目中,我然后简单地为我的 class 创建一个扩展,它现在实现了我的协议。
我想到的第二种方法是,我可以使用预处理器宏 and/or 环境变量。
我希望这个回答能帮助到和我有同样问题的人。
自从我上次为 iOS 开发以来已经有一段时间了。我想是在 Swift 出来之前。不过,这并不重要。我很好奇我应该为我的雇主做些什么。
我们有一个使用 GPS 跟踪器的产品,除了网络应用程序,我们现在还想提供移动应用程序。我已经创建了我们应用程序的 Android 版本。为此,我使用了一个基础项目,在其中实现了所有功能(例如功能 1 和功能 2)。
然后我创建了另外两个项目,它们将基础项目作为依赖项。这两个项目是我的实际应用程序。 App class 覆盖了基本应用程序 class,它有两个抽象方法 "hasFunction1" 和 "hasFunction2" 这两个 return 我在基本应用程序中使用的布尔值提供某种功能。
我也可以轻松地让每个应用程序的应用程序 class return classes 用于不同的情况,因为这些 classes (subclasses例如活动)在基础项目中实现了它们的基本功能,而应用程序项目仅扩展或覆盖了特定的功能。
现在我想对 iOS 做同样的事情,但这里的情况有所不同。你有直接转到某个 class 的故事板,我不知道我是否应该创建多个项目(比如在 android 应用程序中),或者是否最好使用目标来代替。
您对此有何看法?请记住,我的应用程序几乎相同。唯一的区别是名称,有时应用程序 1 启用了应用程序 2 没有(但将来可能有)的一项功能
这种项目的最佳方法是什么?我不知道如何在 iOS
中解决它更新
我刚刚有了一个想法,我想听听你对此的看法:
- 有一个协议,一个简单的协议,例如只有一个方法returning 一个布尔值
- 在基础 class 中,检查 self 是否正在实现协议,如果是,则调用它的方法。使用 return 值确定函数是否可用
- 创建多个目标,每个应用一个目标
- 在每个目标中,为我的基础创建一个扩展 class 实现协议
在我的操场上快速测试后,这似乎按我预期的那样工作,但我仍然不确定我是否应该创建一个框架,多个项目 and/or 只是不同的目标:/
我想通了,我基本上有两种选择来实现我想要的。第一个是我在更新我原来的post:
时已经提到的那个我可以创建一个协议,并在核心中检查 self 是否是协议的一个实例,如果是,则调用协议的一个方法。在我的子项目中,我然后简单地为我的 class 创建一个扩展,它现在实现了我的协议。
我想到的第二种方法是,我可以使用预处理器宏 and/or 环境变量。
我希望这个回答能帮助到和我有同样问题的人。