我有一个基类,实现了一个符合以下协议的扩展:
protocol OptionsDelegate {
func handleSortAndFilter(opt: Options)
}
extension BaseViewController: OptionsDelegate {
func handleSortAndFilter(opt: Options) {
print("Base class implementation")
}
}
我有一个子类"InspirationsViewController",它继承自"BaseViewController"。我正在通过扩展来重写协议方法,如下所示:
extension InspirationsViewController {
override func handleSortAndFilter(opt: Options) {
print("Inside inspirations")
}
}
在子类扩展中覆盖“handleSortAndFilter”函数时出现错误:"Declerations in extensions cannot override yet"
但是,当我实现UITableView数据源和委托方法时,我没有看到类似的问题。
如何避免此错误?
InspirationsViewController
is not a subclass, its an extension. I think you defined it wrong. It should be a classInspirationsViewController: BaseViewController
- Hossam GhareebInspirationsViewController
是BaseViewController
的子类,这是对它的扩展。这个问题可能还没有在 Swift 中实现,你应该从主类中进行重写,扩展是用于添加更多功能的。 - Tj3nclass BaseViewController: UIViewController{}
和class InspirationsViewController: BaseViewController {}
。 - shallowThought