Swift 3如何为不同的目标管理不同的代表 [英] Swift 3 How to manage different delegates for different Targets

查看:52
本文介绍了Swift 3如何为不同的目标管理不同的代表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们为同一项目创建了两个目标(Target_One和Target_Two).

We have created two Targets (Target_One & Target_Two) for same project.

  • Target_One 包含 SDK1 并委托 Target1SDKHelperDelegate
  • Target_Two 包含 SDK2 并委托 Target2SDKHelperDelegate
  • Target_One contain SDK1 and delegate Target1SDKHelperDelegate
  • Target_Two contain SDK2 and delegate Target2SDKHelperDelegate

创建两个目标的原因:我们需要上传两个具有相同UI,但SDK集成不同的应用.

The reason to create two target : we need to upload two apps with same UI but different SDK integration.

我们知道,每个SDK都有自己的委托.因此,我们要应用特定于目标的委托.

As we know, each SDK has their own delegates. So we want to apply delegates specific to the target.

示例:Target_One有一个名为 MyClass

Example: Target_One has a class named MyClass

class MyClass: NSObject, Target1SDKHelperDelegate {

}

在上面的类中,我们实现了Target1SDKHelperDelegate委托.我们也为Target_Two使用相同的类,并且我们想为Target_Two使用Target2SDKHelperDelegate.

In above class, we have implemented Target1SDKHelperDelegate delegate. We are using same class for Target_Two also and we want to use Target2SDKHelperDelegate for Target_Two.

那么我们如何为两个不同的目标分配两个不同的代表?

我们也知道要管理目标,我们应该使用以下代码.

We also know to manage target we should use below code.

#if Target_One

#else

#endif

但是有人告诉我们如何使用上述方法来管理代表吗?

我们想要做类似的事情:

We want to do something like :

 class MyClass: NSObject
       #if Target_One
            , Target1SDKHelperDelegate 
      #else
            , Target2SDKHelperDelegate 
      #endif
   {

    }

推荐答案

可以使用typealias尝试像下面的代码:

Can try like this code with use typealias:

#if FREE_VERSION
public typealias DELEGATES = UIViewController & AttributeUDBClientMainDelegate & AttributeSubscriptionHelperDelegate
#else
public typealias DELEGATES = UIViewController
#endif

public final class SettingsViewController: DELEGATES {

这篇关于Swift 3如何为不同的目标管理不同的代表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆