如何在协议扩展

时间:2016-03-15 09:13:15

标签: swift inheritance protocols

我有一个继承自NSOperation的类和一个类应符合的协议:

protocol OperationProtocol { }

class Operation : NSOperation, OperationProtocol {}

我想让每个操作都在Protocol中实现一个main()方法,当从队列运行时调用该方法。

我试过了:

extension OperationProtocol where Self: NSOperation {
    func main() {
        doMyStuff()
    }
}

不调用此主要方法。 在它引发编译器错误之前放置“覆盖”(方法不会覆盖超类中的方法)

我能做到的唯一方法是将实现函数命名为“main()”,然后覆盖Operation中的main()并从Protocol调用实现

class Operation : NSOperation, OperationProtocol {
    override func main() {
        self.elseThanMain()
    }
}

但我不想在Operation的每个子类中覆盖main()。

这甚至可能吗?

由于

0 个答案:

没有答案