gpt4 book ai didi

ios - 如何在协议(protocol)上创建约束

转载 作者:行者123 更新时间:2023-11-28 12:30:54 26 4
gpt4 key购买 nike

我试图创建只能由继承自 UIView 的类实现的协议(protocol),当这段代码编译没有错误时(在 Swift 3.0 中),令我惊讶的是:

protocol TestsProtocol {
func test()
}

extension TestsProtocol where Self: UIView { }

class FooClass: TestsProtocol {

func test() {

}
}

我们可以看到 FooClass不要继承 UIView ,使用协议(protocol)扩展我不想强制只有继承自 UIView 的类可以实现它。据我所知,这不会在 Swift 2.1 中编译

最佳答案

您不能在 Swift 中执行此操作。扩展语法还做了其他事情:

extension TestsProtocol where Self: UIView {
func useful() {
// do something useful
}
}

现在任何实现了 TestsProtocol 并且是 UIView(或子类)的类也有 useful() 函数。

关于ios - 如何在协议(protocol)上创建约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42120465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com