6

假设我们有一个 Swift 协议:

protocol SomeProtocol: class {
    static var someString: String { get }
}

有没有办法someString像这样从扩展实例方法访问?

extension SomeProtocol {
    public func doSomething() -> String {
        return "I'm a \(someString)"
    }
}

我得到一个编译器错误:

静态成员“someString”不能用于“Self”类型的实例

有没有办法做到这一点?

4

1 回答 1

6

您需要参考someString注意大写SelfS

extension SomeProtocol {
    public func doSomething() -> String {
        return "I'm a \(Self.someString)"
    }
}
于 2015-12-15T19:52:32.183 回答