Swift 2:在抽象超类中指定所需变量
我想写一些关于类和协议的东西。我只想要一种带有明确定义的函数或函数的协议Swift 2:在抽象超类中指定所需变量,swift,Swift,我想写一些关于类和协议的东西。我只想要一种带有明确定义的函数或函数的协议 protocol ObjectProtocol { var endpoint: String } class Object { // All subclasses must implement ObjectProtocol func printAPIEndpoint() { print(endpoint) } } 这样我就可以很容易地定义如下类: class User: Object, Obj
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参考中的“提供默认实现”
用法示例:
class User: ObjectProtocol {
var endpoint = "localhost:3000"
}
let user = User()
user.printAPIEndpoint()