我该如何使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/