3
我有一個抽象的視圖控制器,有一些功能。一些視圖控制器將擴展抽象的並覆蓋一些功能。當任何視圖控制器覆蓋它們時,我需要強制一些函數來調用super。如何強制重寫方法在Swift中調用超級方法?
我有一個抽象的視圖控制器,有一些功能。一些視圖控制器將擴展抽象的並覆蓋一些功能。當任何視圖控制器覆蓋它們時,我需要強制一些函數來調用super。如何強制重寫方法在Swift中調用超級方法?
我建議你制定公開的方法final
並公開空的internal
方法,這些方法在抽象類中什麼也不做,但在公開的方法中調用。
事情是這樣的:
class AbstractViewController {
internal func willDoStuff() {
}
internal func didDoStuff() {
}
final public func doStuff() {
willDoStuff()
// Do the stuff
didDoStuff()
}
}
class RealViewController : AbstractViewController {
override internal func willDoStuff() {
print("Will do stuff")
}
}
let viewController = RealViewController()
viewController.doStuff()