1

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>?'

ここに問題のあるレポがあります。

4

1 に答える 1