最佳答案
协议(protocol)本身不能是单例。那没有任何意义。协议(protocol)是其他类型遵循的东西。
但是,如果您想声明符合 Singleton
的事物遵循某些规则,例如提供 sharedInstance
,那就没问题了。你的语法不正确。您需要将 var
与 get
一起使用,而不是 let
。
protocol Singleton {
static var sharedInstance: Self { get }
}
原则上,您可以通过提供默认实现来自动创建此实例,但 Swift 不允许您在扩展中创建存储。虽然可以通过某种全局缓存来实现这一点,但很难想象这是值得的。
关于swift - Swift 协议(protocol)可以是单例的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51872780/