我想要尝试一下Swift、协议和协议扩展。具体来说,我想在协议扩展中提供一个协议的默认实现。以下是我的代码:
protocol Proto : class {
func someMethod() -> String
}
extension Proto {
static func create() -> Self {
return ProtoDefaultImpl() as! Self
}
}
class ProtoDefaultImpl : Proto {
func someMethod() -> String {
return "doing something"
}
}
let instance = Proto.create()
let output = instance.someMethod()
print(output)
编译器在我调用
Proto.create()
的那一行抱怨,并显示以下错误:错误:静态成员'create'不能用于'type 'Proto.Protocol'的实例'
。我错过了什么吗?你有什么办法可以解决这个问题吗?
谢谢。