0
私はバインドされている2つのクラスを持っていると思います。これは、両方のクラスが互いのメソッドについて知っていることを意味します。スウィフト - クラスに対する相互ジェネリックリファレンスを得ることはできますか?
BaseController <> BaseView
これらのクラスは、例えば
LoginController <> LoginView.
BaseController
は一種<T : BaseView>
のビューへの強い参照を有し、サブクラスを宣言するために使用され、BaseView
は一種<T: BaseController>
私はBaseViewにジェネリックを持っています:
class BaseController <T: BaseScreen>
私がそうすることを:
動作し、コントローラは、ビュー機能に直接アクセス(可視性)を持って、私はすべての時間をキャストする必要はありませんclass LoginController : BaseController<LoginView>
。私は
class BaseView <T : BaseController>
を行う場合、コンパイラは再帰エラーになり
class BaseView <T : BaseController <BaseScreen>>
を行うために私を強制するため
は、しかし、私は、ビュー上で同じことを行うことはできません。
ジェネリックを使用してその相互参照を行う方法はありますか?今のところ、必要に応じてコントローラにキャストするだけの視点に固執しています。
素晴らしい!いくつかのメソッドの実装があるので、私はまだスーパークラスが必要ですが、私はプロトコルもできると思います。 – htafoya
また、基本クラスを使用し、型固有のものに対してのみプロトコルを使用することもできます。 – Palle