Я хочу переопределить метод, определенный в родительском классе, который приводит к пользовательскому классу.
Родитель:
open class PagedTableViewController<T>: UIViewController {
open func getSelectedFilters () -> SelectedFiltersResource {
return SelectedFiltersResource()
}
}
Когда я пытаюсь переопределить его в дочернем классе, я получаю сообщение об ошибке «Метод не переопределяет ни один метод из своего суперкласса»
Ребенок выглядит так:
class ReshipmentsTabViewController:
PagedTableViewController<Reshipment> {
//This does NOT work
override func getSelectedFilters() -> SelectedFiltersResource {
return SelectedFiltersResource()
}
//This DOES work (if i also change the type in the parent obv.)
override func getSelectedFilters() -> String {
return String()
}
}
Это не имеет смысла для меня, поскольку ребенок, очевидно, переопределяет функцию.
Я попытался переключить тип возврата на строку, и тогда это сработало. Так что я думаю, что мой тип результата - проблема:
import Foundation
import ObjectMapper
open class SelectedFiltersResource: NSObject, Mappable {
public var selectedCustomers = [Int64]()
public override init() {
}
public required init?(map: Map) {
}
// Mappable
public func mapping(map: Map) {
selectedCustomers <- map["selectedCustomers"]
}
}
Так в чем здесь проблема? Я не вижу ничего ... Я использую Swift 5.0 и Xcode 10.2
Мой класс SelectedFilters и класс Parent происходят из Cocoapod.