当前位置:  开发笔记 > IOS > 正文

从协议扩展实例方法中读取静态var

如何解决《从协议扩展实例方法中读取静态var》经验,为你挑选了1个好方法。

假设我们有一个Swift协议:

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

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

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

我收到编译器错误:

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

有没有办法实现这个目标?



1> Dov..:

你需要参考someStringSelf(注意大写S):

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

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有