Ios 使用协议生成typealias

Ios 使用协议生成typealias,ios,swift3,protocols,type-alias,Ios,Swift3,Protocols,Type Alias,我可以这样定义2个typealias吗 typealias MyViewControllerTypeOne = UIViewController typealias MyViewControllerTypeTwo = UIViewController, MyGreatProtocol 我已经知道第二个不适用于这种语法 但是,怎样才能得到我想要的结果呢? (我想我想要的在这里很明显。)在Swift 4中,您现在可以使用&操作符用任意数量的协议组成一个类: typealias MyViewCon

我可以这样定义2个typealias吗

typealias MyViewControllerTypeOne = UIViewController

typealias MyViewControllerTypeTwo = UIViewController, MyGreatProtocol
我已经知道第二个不适用于这种语法

但是,怎样才能得到我想要的结果呢?
(我想我想要的在这里很明显。)

Swift 4
中,您现在可以使用
&
操作符用任意数量的协议组成一个类:

typealias MyViewControllerTypeTwo = UIViewController & MyGreatProtocol
5点23分左右检查电话号码


您还可以在中看到“协议组合”一节,尽管它没有提到使用协议组合类。

您可以将其作为元组来完成-

typealias tupleAlias = (viewController :UIViewController,protocol: MyGreatProtocol)
编辑: 示例使用-

typealias PersonTuple = (name: String, address: String)

    override func viewDidLoad() {
        super.viewDidLoad()
        let tupleInstance = getPerson(for: "Jack")
        print(tupleInstance.address)//Prints India
    }
    func getPerson(for name: String) -> PersonTuple {
        return (name, "India")
    }

我懂了。我在Swift 3中试过这个。它不起作用。至少这对Swift 4来说是个好消息。这个typealias定义似乎可以工作,但是以后如何使用它来定义tupleAlias类型的对象呢?若试图像使用UIViewController一样使用它,它将不起作用。@Michel我已经编辑了答案,这取决于您如何使用它。