Swift class 多个协议的一致性(XCode 7,iOS 9,Swift 2.1)

Swift class conformance of multiple protocols (XCode 7, iOS 9, Swift 2.1)

如何使 Swift class 符合 ObjC 中的多个协议?

我收到一条错误消息

Type 'ViewController' does not conform to protocol 'Protocol_A'

Type 'ViewController' does not conform to protocol 'Protocol_B'

Type 'ViewController' does not conform to protocol 'Protocol_C'

Type 'ViewController' does not conform to protocol 'Protocol_D'

我原以为 Swift protocol:ing 可以像 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 {
}

您必须在 class

中实现协议功能

例如

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()
}