問題タブ [swinject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1721 参照

ios - Swinject: アセンブリへの移行

私は自分のプロジェクトで DI にすばらしいSwinjectを使用していますが、アセンブリなしで使用しています (Swinject を使い始めた時点では、アセンブリはありませんでした)。

私の現在の使用パターンContainersは次のとおりです。

その構成では:

  • コンテナは存続する必要がある限り存続します (コンテナへの参照を保持する唯一のエンティティ - 依存関係を使用できる VC)
  • 私のコードが呼び出すように、DI フレームワークの使用を停止/切り替えて、手動ビルドに置き換えることContainerもできます (私のコードはフレームワークについて認識していません)。let topController = ParentContainer().myTopLevelController()

今、私は適用しようとしていますAssembly。私が理解できる限り、私のコンテナーはAssemblyTypeプロトコルに準拠するようになりました。しかし、私はいくつかの混乱があります:

  1. コンテナーではなく、アセンブリを介してインスタンスを解決する必要がありますか?
  2. func loaded(resolver: ResolverType)メソッドの目的は何ですか?リゾルバーを保持する必要がありますか? リテインサイクルにつながる?
  3. TopLevelAssembly を使用したいのですが、リーフ エンティティには引き続き Containers を使用します。Assembly をコンテナの親として渡すことは可能ですか? または、それを達成する他の方法はありますか?
0 投票する
1 に答える
657 参照

swift - Swinject Testing 解決済みサービス

サービスが .Container スコープで既に解決されているかどうかをテストする方法を探しています。私のアプリケーションは、起動時にいくつかの「サービス」を起動します。これらのサービスが解決されることをトリガーせずに、それらのサービスが解決されていることを確認したかったのです。

0 投票する
0 に答える
262 参照

swift - このシナリオでファクトリを注入することは理にかなっていますか (Swinject)

PetOwnerプログラムの後の任意の時点で の新しいインスタンスを作成できる正しい (最もクリーンで簡潔な) 方法はCat何ですか?

何らかの非同期リクエストへの応答を取得した後、それ自体createAnotherAnimalで呼び出すことができると仮定しましょう。したがって、作成時に必要な数の のインスタンスを作成することはできません。PetOwnerCatPetOwner

ファクトリを注入することで問題を解決しましたが、それが問題に取り組む最善の方法であるとは確信していません.Swinjectの代替手段は何ですか?

0 投票する
1 に答える
295 参照

realm - Swinject と Realm を組み合わせる

そのフレームワークに感謝します。アイデアがとても気に入っていて、ぜひ使ってみたいです!ただし、現在、レルムも使用するアプリでこれを実行しようとしています。私は当初、自分のモデルに注入し、レルムのすべての書き込みを処理する realmService を作成することをお勧めします。

悲しいことに、これを適切に行う方法を決めることができません。Wether App の例は素晴らしいですが、どの領域モデルもカバーしていません。私を正しい方向に向けるヒントはありますか?コンストラクターとプロパティを介して試しましたが、機能しません。私は、概念的な何かが欠けていると思います。

ありがとう、私はあなたから学びたいと思っています:)

乾杯

0 投票する
3 に答える
3527 参照

ios - Swinject を使用する場合、resolve メソッドに引数を渡すにはどうすればよいですか?

Swinjectプロジェクトの resolve メソッドに引数を渡そうとするテスト プロジェクトがあります。

これは、私の Swinject ストーリーボード拡張ファイルに含まれているものの例です。

私のViewControllerでは、GetMessageActionを解決するために次のことをしようとしています

getMessage 関数を実行すると、次のメッセージが表示されます

致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました

0 投票する
0 に答える
1124 参照

ios - Swinject: MVVM とストーリーボードのセットアップ

これはSwinjectを使用する初めてのプロジェクトであり、適切に使用できるようにしたいと考えています。

C++/Objective-C のバックグラウンドを持つ私は、依存性注入コンテナーの経験があまりありません。

私はMVVMアーキテクチャに従い、SwinjectStoryboardストーリーボードを使用してすべてのView Controllerをインスタンス化します。

これが私のセットアップです:

いくつかの質問:

  • defaultContainerストーリーボードで提供されている をすべてに使用しても問題ありませんか?

  • ビュー コントローラーにイニシャライザー インジェクションを使用する方法がないため、それらのviewModelプロパティを非公開にする方法がないと仮定するのは正しいでしょうか?

  • このセットアップでは、.Hierarchyまたは.Containerスコープを使用すると違いがありますか?

すべてのフィードバックを歓迎します。

0 投票する
0 に答える
375 参照

ios - 依存関係が注入されていない nib を介してインスタンス化された Swinject UIViewController

次のような通常のView Controller:

次のようにSwinjectに登録します。

次に、プログラムで次のようにインスタンス化します。

ビュー スタックに追加される前に、someProperty注入されたことはありません。

私は何を間違っていますか?ありがとうございました。