2017-03-10 7 views
0

私は複数のコンポーネントを持つプロジェクトを行っています。これらのコンポーネントのいくつかは、アプリケーション間で再利用可能である必要があります。アプリケーションは関連していますが、ビジネス上の目的でマージすることはできません。ありがたいことに、以下の問題は実際に私に問題を引き起こすつもりはありませんが、私はそれを解決する方法について非常に興味があります。いつか私はちょうど次のパターンを実装する必要があるかもしれないので。フレームワーク間で同じプロトコルをマージする方法はありますか?

私はFooという名前のココアポッドを持っていて、別の名前はBarだとします。 Fooは、Foo.BussinessLogicプロトコルを実装するオブジェクトを使用してその代理人にレポートします。 Barはちょうど同じBar.BussinessLogicプロトコルを持っています。両方のプロトコルに準拠したオブジェクトを簡単に作成できますが、直接FooBar.BussinessLogicに準拠させる以外は、Fooがメッセージを送信するときにはitem as! Bar.BussinessLogicバーとその逆?

+0

「どのように私は2つに接続しますか」それはどういう意味ですか?私は問題が何であるかはわかりません。テーブルビューコントローラはUITableViewDelegateとUITableViewDataSourceに準拠していますが、常にキャストする必要はありません。それはちょうど_is_です。 – matt

+0

@matt 2つのプロトコルが同一であっても、Bar.BussinessLogicのimplimentingオブジェクトは、Foo.BussinessLogicを呼び出すパラメータとして受け入れられないという問題があります。 – RonLugge

答えて

1

プロトコルが複数のメソッドを共有している場合、私の本能は、それらが両方とも依存できる第3のライブラリの共通プロトコルに準拠することになります。

Swiftでは、コンパイラを騙して「信頼してください、彼らは同じ方法を持っています」と言うことはできません。

しかし、あなたの質問のタイプが非常に曖昧であるため、あなたの質問に答えているかどうかはわかりません。他にも多くの解決策があります。状況によって異なります。

関連する問題