問題タブ [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.
swift - Swiftでの単純なコンテナバインディング?
免責事項:私はまだ Swift を学んでいるので、Swift の特定の概念/機能/制限を理解していない場合はご容赦ください。
Swinject フレームワークでは、プロトコルをクラスにバインドする場合、次のようなクロージャーでクラス インスタンスを返す必要があるようです。
代わりに 2 つの型をメソッドに渡しregister()
、フレームワークにクラスをインスタンス化させることは可能ですか? もちろん、そのクラスに初期化子の依存関係があるかどうかを再帰的に確認する必要があります(制御の反転)。
これは PHP の世界で可能です。リフレクションの概念があるためです。これにより、依存関係のクラス タイプを取得して、その場でインスタンス化することができます。Swiftにこの機能があるのだろうか?
これを書く方がはるかに良いでしょう:
これにより、コンテナーから任意のクラスを解決し、その依存関係も解決することができます (手動でクラスを登録する必要はありません)。
注:これは、依存関係としてスカラー型をとらないクラスに対してのみ意味があります (もちろん明示的に指定する必要があるため)。
swift - Swinject: 任意のオブジェクトのインスタンスを生成します (未登録オブジェクト、ViewModel など)。
Swinject コンテナに登録されていないオブジェクトの新しいインスタンスを解決/作成することは可能ですか? Unity では、c# の依存性注入 (Microsoft から) がそれです。
一部のプロトコルに依存するviewModelクラスを解決したい。例: IFileManager をコンテナーに登録しました。
そして私viewModelはIFileManagerに依存しています
Swinject リゾルバーを使用して AwesomeViewModel の新しいインスタンスを作成したいのですが、すべての依存関係を init に追加したいのですが、うまくいきません。
そしてViewModelはnilです
ios - Swinject コンテナーの登録が失敗する
いくつかのプロトコルをさまざまなクラスにバインドしようとしているときnil
に、プロトコルに入るという奇妙な動作に遭遇しました。これは、依存性インジェクター クラスです。
これは次のAppDelegate
とおりです。
以下のクラスnil
では、プロトコル プロパティを取得します。
nil
ネットワーク変数は、ネットワーク変数を使用する他のクラスで常に機能しstoryboardInitCompleted
ます。
私は何を間違っていますか?
ios - Swinject - 1つのリゾルバーから同じコントローラーを2回解決する方法は?
そして... 一番下に TabBarItem が 1 つだけあります。なんで?
このように使用すると:
;) 私の実装では、Swinject の何が問題になっていますか?