Que*_*e20 5 ios swift swift-protocols
如何对实现协议的类进行扩展?
类似的东西:
protocol proto {
func hey()
}
Run Code Online (Sandbox Code Playgroud)
以及符合以下条件的类proto:
Class MyClass: UIViewController, proto {
func hey() {
print("Hey!")
}
}
Run Code Online (Sandbox Code Playgroud)
然后是该类的扩展,如下所示:
extension UIViewController where Self:proto {
func test() {
print("I'm extended!")
}
}
Run Code Online (Sandbox Code Playgroud)
这样我就可以打电话self.test()了MyClass。
谢谢。
您可以只扩展协议,而不是类型。请尝试以下操作:
protocol proto {
func hey()
}
class MyClass: UIViewController, proto {
func hey() {
print("Hey!")
}
func test2() {
self.test()
}
}
extension proto where Self: UIViewController {
func test() {
print("I'm extended!")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |