我正在尝试编写一个类和一个协议。我只想要一种具有明确定义的函数的协议。
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 ObjectProtocol {
var endpoint: String { get }
}
extension ObjectProtocol {
func printAPIEndpoint() { print(endpoint) }
}
这为所有对象定义了默认方法
printAPIEndpoint()
符合
ObjectProtocol
的类型,进行比较Swift参考资料中"Protocols"中的“提供默认实现”。
用法示例:
class User: ObjectProtocol {
var endpoint = "localhost:3000"
}
let user = User()
user.printAPIEndpoint()
关于swift - Swift 2:在抽象父类(super class)中指定所需的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35826333/