問題タブ [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.
swinject - 静的のみのプロトコルを登録することは可能ですか?
残念ながら、一部のライブラリには静的メソッドしかありません。Swinject に型を登録させて、型のインスタンスではなく型を返すようにすることは可能ですか? テスト用に静的ライブラリのみをスタブ化するのが難しくなります。
swift - xib コントローラーに依存関係を挿入する
メニューバーのアイコンのみで構成される macOS アプリケーションを開発しています。
メニューを含むxibファイル(MenuBarMenu.xib)と、それをメニューバーに配置する対応するコントローラー(MenuBarMenuController.swift)があります。
手動または Swinject を使用して、このコントローラーに依存関係を挿入したいと考えています。
これを行うには、AppDelegate からプログラムで xib ファイルをロードできると考えました。
しかし、applicationDidFinishLaunching に到達する前に、コントローラーが NSApplication によって自動的にインスタンス化されているようです。
私が試したこと:
- info.plist から NSMainNibFile を削除しました
- info.plist から NSMainStoryboardFile を削除しました
- プロジェクト設定のメインインターフェイス設定をクリア
- 追加された LSUIElement = はい
- カスタム main.swiftを使用して、AppDelegate が確実に呼び出されるようにしました。
xib ファイルが存在する場合は、AppDelegate の前に呼び出されます。削除すると、実行時エラーは発生しません。
私の質問は、このコントローラーに依存関係を挿入するにはどうすればよいですか?
ios - Swinject:インターフェース分離(クラスとインターフェース)でデリゲートパターンを使用する方法は?
インジェクションの依存関係の問題に取り組んでいます。ここで、デリゲート パターンの場合にインターフェイス分離の原則をどのように使用するかという疑問が生じます。依存性注入に Swinject フレームワークを使用しています。どうすればこれを解決できますか?
子クラス、これまでのところ異常はありません。
しかし、依存関係を適切に注入するには、直接のクラス参照ではなく、プロトコルが必要ですよね? このような:
要するに、ぐるぐる回っています。子クラスのインターフェイスを使用すると、デリゲート プロパティにアクセスできません。クラス参照を使用すると、インターフェイス メソッドをモック/スタブすることはできません。
私は何が欠けていますか?よろしくお願いします!