我们为同一项目创建了两个目标(Target_One 和 Target_Two)。
- Target_One 包含 SDK1 并委托(delegate) Target1SDKHelperDelegate
- Target_Two 包含 SDK2 并委托(delegate) Target2SDKHelperDelegate
创建两个目标的原因:我们需要上传两个具有相同 UI 但不同 SDK 集成的应用程序。
众所周知,每个 SDK 都有自己的委托(delegate)。所以我们想应用特定于目标的委托(delegate)。
示例:Target_One 有一个名为 MyClass 的类
class MyClass: NSObject, Target1SDKHelperDelegate {
}
在上面的类中,我们实现了 Target1SDKHelperDelegate 委托(delegate)。 我们也为 Target_Two 使用相同的类,并且我们希望为 Target_Two 使用 Target2SDKHelperDelegate。
那么我们如何让两个不同的委托(delegate)去实现两个不同的目标呢?
我们还知道要管理目标,我们应该使用下面的代码。
#if Target_One
#else
#endif
但是有人告诉我们如何使用上面的方法来管理委托(delegate)吗?
我们想做这样的事情:
class MyClass: NSObject
#if Target_One
, Target1SDKHelperDelegate
#else
, Target2SDKHelperDelegate
#endif
{
}
最佳答案
可以尝试像下面的代码一样使用类型别名:
#if FREE_VERSION
public typealias DELEGATES = UIViewController & AttributeUDBClientMainDelegate & AttributeSubscriptionHelperDelegate
#else
public typealias DELEGATES = UIViewController
#endif
public final class SettingsViewController: DELEGATES {
关于ios - Swift 3 如何管理不同目标的不同委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974346/