Swift协议可以单独使用吗?

时间:2016-03-02 20:06:09

标签: swift singleton swift-protocols

我尝试过对单例使用单行单例初始化(如同在类中),这里有一些错误截图: enter image description here

enter image description here

你能帮助我理解这些错误吗?还有,如果单独协议是否可行? 提前致谢

1 个答案:

答案 0 :(得分:5)

协议本身不能是单身人士。这没有任何意义。协议是其他类型符合的协议。

但是如果你想声明符合Singleton的内容遵循某些规则,例如提供sharedInstance,那就没关系了。你的语法不正确。您需要var使用get而不是let

protocol Singleton {
    static var sharedInstance: Self { get }
}

原则上,您可以通过提供默认实现来自动创建此实例,但Swift不允许您在扩展中创建存储。虽然可以通过某种全局缓存来解决这个问题,但很难想象它值得这么麻烦。

相关问题