是否可以使用Swift协议来强制执行静态方法而不是类方法,反之亦然?
例如,即使将协议设置为类协议,也不允许使用类func或final类func:
protocol MyProtocol: class {
final class func dummyClassMethod()
}
或者在这种情况下,允许类在符合以下条件时创建静态方法或类方法:
protocol MyProtocol: class {
static func dummyClassMethod()
}
答案 0 :(得分:1)
你不能这样做,因为苹果公司的文档明确表示仅为了这个目的使用static
:
在协议中声明
class
或static
方法要求 声明,使用static
声明标记方法声明 的改性剂强>
来源:Protocol Method Declaration
当您在static
中实施protocol
的{{1}}方法时,在您的实施中使用class
或class
没有区别。< / p>
static