在Swift中,我们如何定义扩展或专门化基本协议的协议?文档似乎没有说清楚.
还不清楚,Swift协议是否符合/扩展NSObject协议?这是一个有趣的问题,因为它会暗示Swift是否使用vtable或基于消息的调度来调用协议方法.
Con*_*nor 45
协议继承使用Swift中的常规继承语法.
protocol Base {
func someFunc()
}
protocol Extended : Base {
func anotherFunc()
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,Swift协议不符合NSObjectProtocol.如果确实选择使协议符合NSObjectProtocol,则会将协议限制为仅用于类.
语法与声明从超类继承的类相同.
protocol SomeProtocol { }
protocol SomeOtherProtocol: SomeProtocol { }
Run Code Online (Sandbox Code Playgroud)
不,他们没有.如果您希望协议也符合NSObjectProtocol,您可以为新协议提供多种协议以符合这样的要求.
protocol SomeOtherProtocol: SomeProtocol, NSObjectProtocol { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13168 次 |
| 最近记录: |