問題タブ [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.
ios - Swinject: アセンブリへの移行
私は自分のプロジェクトで DI にすばらしいSwinjectを使用していますが、アセンブリなしで使用しています (Swinject を使い始めた時点では、アセンブリはありませんでした)。
私の現在の使用パターンContainers
は次のとおりです。
その構成では:
- コンテナは存続する必要がある限り存続します (コンテナへの参照を保持する唯一のエンティティ - 依存関係を使用できる VC)
- 私のコードが呼び出すように、DI フレームワークの使用を停止/切り替えて、手動ビルドに置き換えること
Container
もできます (私のコードはフレームワークについて認識していません)。let topController = ParentContainer().myTopLevelController()
今、私は適用しようとしていますAssembly
。私が理解できる限り、私のコンテナーはAssemblyType
プロトコルに準拠するようになりました。しかし、私はいくつかの混乱があります:
- コンテナーではなく、アセンブリを介してインスタンスを解決する必要がありますか?
func loaded(resolver: ResolverType)
メソッドの目的は何ですか?リゾルバーを保持する必要がありますか? リテインサイクルにつながる?- TopLevelAssembly を使用したいのですが、リーフ エンティティには引き続き Containers を使用します。Assembly をコンテナの親として渡すことは可能ですか? または、それを達成する他の方法はありますか?
swift - Swinject Testing 解決済みサービス
サービスが .Container スコープで既に解決されているかどうかをテストする方法を探しています。私のアプリケーションは、起動時にいくつかの「サービス」を起動します。これらのサービスが解決されることをトリガーせずに、それらのサービスが解決されていることを確認したかったのです。
swift - このシナリオでファクトリを注入することは理にかなっていますか (Swinject)
PetOwner
プログラムの後の任意の時点で の新しいインスタンスを作成できる正しい (最もクリーンで簡潔な) 方法はCat
何ですか?
何らかの非同期リクエストへの応答を取得した後、それ自体createAnotherAnimal
で呼び出すことができると仮定しましょう。したがって、作成時に必要な数の のインスタンスを作成することはできません。PetOwner
Cat
PetOwner
ファクトリを注入することで問題を解決しましたが、それが問題に取り組む最善の方法であるとは確信していません.Swinjectの代替手段は何ですか?
realm - Swinject と Realm を組み合わせる
そのフレームワークに感謝します。アイデアがとても気に入っていて、ぜひ使ってみたいです!ただし、現在、レルムも使用するアプリでこれを実行しようとしています。私は当初、自分のモデルに注入し、レルムのすべての書き込みを処理する realmService を作成することをお勧めします。
悲しいことに、これを適切に行う方法を決めることができません。Wether App の例は素晴らしいですが、どの領域モデルもカバーしていません。私を正しい方向に向けるヒントはありますか?コンストラクターとプロパティを介して試しましたが、機能しません。私は、概念的な何かが欠けていると思います。
ありがとう、私はあなたから学びたいと思っています:)
乾杯
ios - Swinject を使用する場合、resolve メソッドに引数を渡すにはどうすればよいですか?
Swinjectプロジェクトの resolve メソッドに引数を渡そうとするテスト プロジェクトがあります。
これは、私の Swinject ストーリーボード拡張ファイルに含まれているものの例です。
私のViewControllerでは、GetMessageActionを解決するために次のことをしようとしています
getMessage 関数を実行すると、次のメッセージが表示されます
致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました
ios - Swinject: MVVM とストーリーボードのセットアップ
これはSwinjectを使用する初めてのプロジェクトであり、適切に使用できるようにしたいと考えています。
C++/Objective-C のバックグラウンドを持つ私は、依存性注入コンテナーの経験があまりありません。
私はMVVMアーキテクチャに従い、SwinjectStoryboard
ストーリーボードを使用してすべてのView Controllerをインスタンス化します。
これが私のセットアップです:
いくつかの質問:
defaultContainer
ストーリーボードで提供されている をすべてに使用しても問題ありませんか?ビュー コントローラーにイニシャライザー インジェクションを使用する方法がないため、それらの
viewModel
プロパティを非公開にする方法がないと仮定するのは正しいでしょうか?このセットアップでは、
.Hierarchy
または.Container
スコープを使用すると違いがありますか?
すべてのフィードバックを歓迎します。
ios - 依存関係が注入されていない nib を介してインスタンス化された Swinject UIViewController
次のような通常のView Controller:
次のようにSwinjectに登録します。
次に、プログラムで次のようにインスタンス化します。
ビュー スタックに追加される前に、someProperty
注入されたことはありません。
私は何を間違っていますか?ありがとうございました。