假设我们有一个 Swift 协议(protocol):
protocol SomeProtocol: class {
static var someString: String { get }
}
有没有办法像这样从扩展实例方法访问 someString
?
extension SomeProtocol {
public func doSomething() -> String {
return "I'm a \(someString)"
}
}
我得到一个编译器错误:
Static member 'someString' cannot be used on instance of type 'Self'
有什么办法可以做到这一点吗?
最佳答案
您需要使用 Self
引用 someString
(注意大写 S
):
extension SomeProtocol {
public func doSomething() -> String {
return "I'm a \(Self.someString)"
}
}
关于swift - 从协议(protocol)扩展实例方法中读取静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298173/