我有 VIPER 架构,我想创建适用于泛型类型的父 VIPER 搜索组件。这个想法很简单,所以我有搜索栏和表格视图。例如,我可以在表格视图中显示饮料或食物名称。取决于我指定要显示的通用数据类型或食物或饮料。
我找到了一个很好的例子,可以解决我的通用视图控制器问题。但我想为 swift 通用 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>?'
这是一个关于这个问题的回购。