I've a base class that implements an extension that conforms to a protocol as below:
protocol OptionsDelegate {
func handleSortAndFilter(opt: Options)
}
extension BaseViewController: OptionsDelegate {
func handleSortAndFilter(opt: Options) {
print("Base class implementation")
}
}
I've a subclass "InspirationsViewController" that inherits from BaseViewController. And I'm overriding protocol method in the extension as below:
extension InspirationsViewController {
override func handleSortAndFilter(opt: Options) {
print("Inside inspirations")
}
}
I'm getting error when I override "handleSortAndFilter" function in subclass extension: "Declerations in extensions cannot override yet"
But I'm not seeing similar problem when I implemented UITableView datasource and delegate methods.
How to avoid this error?
Use protocol extension with where clause. It works. But I would not recommend you to have such things in your codebase.
As far as I know you can't override methods in extensions. Extensions can only do the following: “Extensions in Swift can:
Excerpt From: Apple Inc. “The Swift Programming Language (Swift 3.0.1).”