gpt4 book ai didi

swift 2 : Specifying required variables in an abstract superclass

转载 作者:行者123 更新时间:2023-11-30 13:38:36 26 4
gpt4 key购买 nike

我正在尝试编写一些类和协议(protocol)的东西。我只想要一种具有明确定义的功能的协议(protocol)或。

protocol ObjectProtocol {
var endpoint: String
}

class Object {
// All subclasses must implement ObjectProtocol

func printAPIEndpoint() { print(endpoint) }
}

这样我就可以轻松地定义这样的类:

class User: Object, ObjectProtocol {
var endpoint = "localhost:3000"
}

实现这样的目标的最佳方法是什么?

最佳答案

具有默认方法实现的协议(protocol)扩展 可能是您正在寻找的:

protocol ObjectProtocol {
var endpoint: String { get }
}

extension ObjectProtocol {
func printAPIEndpoint() { print(endpoint) }
}

这为所有定义了一个默认方法printAPIEndpoint()符合ObjectProtocol的类型,比较"Protocols" 中的“提供默认实现”在 Swift 引用中。

使用示例:

class User: ObjectProtocol {
var endpoint = "localhost:3000"
}

let user = User()
user.printAPIEndpoint()

关于 swift 2 : Specifying required variables in an abstract superclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826333/

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