У меня есть архитектура VIPER, и я хочу создать родительский компонент поиска VIPER, который работает с универсальным типом.Идея проста, поэтому у меня есть панель поиска, и у меня есть вид таблицы.Например, я могу показывать названия напитков или продуктов в виде таблицы.Зависит от того, какой тип общих данных я указал, я хочу показать или продукты или напитки.
Я нашел очень хороший пример , который решает мою проблему с контроллерами универсального представления.Но я хочу создать нечто подобное для быстрой общей архитектуры VIPER.
Я пропущу описание всех классов VIPER, таких как (Router
, Interdictor
и т. Д.).
Итак, у меня есть родительское представлениеконтроллер:
BaseSearchViewController: UIViewController {
var presenter: BaseSearchPresenter<Any>?
}
и дочерний:
FoodSearchViewController: BaseSearchViewController {
}
Это родительский презентатор, указанный в BaseSearchViewController
class BaseSearchPresenter<T> {
var items [T]
}
также у меня есть детектор поиска детского питания с определеннымТип еды, который я хотел бы отобразить в моей таблице:
class FoodSearchPresenter: BaseSearchPresenter<Food> {
}
Когда я пытаюсь настроить свой VIPER:
let viewController = FoodSearchViewController(...) // init VC
let presenter = FoodSearchPresenter()
viewController.presenter = presenter // assigning child FoodSearchPresenter instance to a BaseSearchViewController presenter variable leads to this error:
Cannot assign value of type 'FoodSearchPresenter' to type 'BaseSearchPresenter<Any>?'
Вот репо с проблемой.