VIPER アーキテクチャがあり、ジェネリック型で動作する親 VIPER 検索コンポーネントを作成したいと考えています。アイデアはシンプルなので、検索バーとテーブル ビューがあります。たとえば、表形式で飲み物や食べ物の名前を表示できます。私が指定した一般的なデータ型、または食べ物や飲み物に依存します。
一般的なView Controllerに関する問題を解決する非常に良い例を見つけました。しかし、迅速な汎用 VIPER アーキテクチャに似たものを作成したいと考えています。
Router
(など)のようなすべての VIPER クラスの説明は省略しますInterdictor
。
だから私は親View Controllerを持っています:
BaseSearchViewController: UIViewController {
var presenter: BaseSearchPresenter<Any>?
}
と子:
FoodSearchViewController: BaseSearchViewController {
}
これは BaseSearchViewController で指定された親プレゼンターです
class BaseSearchPresenter<T> {
var items [T]
}
また、テーブルに表示したい特定のタイプの Food を持つ子フード検索プレゼンターがあります。
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>?'
ここに問題のあるレポがあります。