是否可以使用Swift协议来强制执行静态方法而不是类方法,反之亦然?

时间:2017-02-10 20:39:23

标签: swift3 protocols

是否可以使用Swift协议来强制执行静态方法而不是类方法,反之亦然?

例如,即使将协议设置为类协议,也不允许使用类func或final类func:

protocol MyProtocol: class {
    final class func dummyClassMethod()
}

或者在这种情况下,允许类在符合以下条件时创建静态方法或类方法:

protocol MyProtocol: class {
    static func dummyClassMethod()
}

1 个答案:

答案 0 :(得分:1)

你不能这样做,因为苹果公司的文档明确表示仅为了这个目的使用static

  

协议中声明classstatic方法要求   声明,使用static声明标记方法声明   的改性剂

来源:Protocol Method Declaration

当您在static中实施protocol的{​​{1}}方法时,在您的实施中使用classclass没有区别。< / p>

static