如何为委托引用指定多个类型?

时间:2016-02-09 07:33:33

标签: ios objective-c swift delegates

我快速地遇到两个问题 1.为代表指定多种类型
2.为代理指定类型

textBox.SetBinding( TextBox.TextProperty, new Binding( "DataContext" ) 
  { RelativeSource= new RelativeSource( RelativeSourceMode.Self ) } );

如何在swift中转换这两行?

我搜索了互联网并试图查看库代码,以便我可以得到提示,但没有得到任何东西。

2 个答案:

答案 0 :(得分:0)

使用protocol

var delegate: protocol<MyProtocol, MyAnotherProtocol>

对于第二个,您可以使用:

var delegate: MyProtocol

答案 1 :(得分:0)

您可以使用protocol composition以单个名称合并多个协议,如下所示。

// Protocol Composition!!
typealias MyCompositeProtocol = protocol< MyProtocol, MyAnotherProtocol >

然后,您可以使用名称MyCompositeProtocol,而不是指定多个名称。

如下所示,

class DetailsViewController: UIViewController, MyCompositeProtocol {
    var myDelegate : MyCompositeProtocol?
}