我该如何使Swift类像ObjC中那样符合多种协议?

我说错了


  类型“ ViewController”不符合协议“ Protocol_A”
  
  类型“ ViewController”不符合协议“ Protocol_B”
  
  类型“ ViewController”不符合协议“ Protocol_C”
  
  类型“ ViewController”不符合协议“ Protocol_D”


我期待Swift协议:可以轻松工作,并且类似于Objective C,但显然Apple有天才。那好吧。

编辑:
协议为空时,显然不会发生此问题。
但是,当我在其中一种协议中添加func时,该错误再次发生。

这是我的示例代码:

protocol Protocol_A {
    func someFunc()
}

protocol Protocol_B {
}

protocol Protocol_C {
}

protocol Protocol_D {
}


class ViewController: UIViewController, Protocol_A, Protocol_B, Protocol_C, Protocol_D {
}

最佳答案

您必须在该类中实现协议功能

例如

protocol Protocol_A {
func someFunc()
}

protocol Protocol_B {
    func someFuncB()
}

protocol Protocol_C {
}

protocol Protocol_D {
}


class ViewController: UIViewController, Protocol_A, Protocol_B, Protocol_C, Protocol_D {
func someFunc() {

}
func someFuncB() {

}
}


如果您希望功能是可选的

@objc protocol Protocol_A {
   optional func someFunc()
}

关于ios - 多种协议(protocol)的Swift类一致性(XCode 7,iOS 9,Swift 2.1),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33139734/

10-14 23:35