問題タブ [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: ワークスペースで複数のモジュール (プロジェクト) を使用すると解決に失敗する
Swinject を使用してマルチモジュール ワークスペースの DI をセットアップしようとしています。ParentProject
から構築されたバイナリフレームワークを埋め込むものがありますChildProject
(したがってParentProject
、からのすべての公開コードが含まれますChildProject
)。
私のアプローチは、モジュールごとに 1 つのアセンブリを作成し、それらを ParentProject で一緒にアセンブルすることです。私が得ているエラーは私にとって本当に奇妙です.1つを取ってくださいNSPersistentContainer
:
Swinject: Resolution failed. Expected registration:
{ Service: NSPersistentContainer, Factory: Resolver -> NSPersistentContainer }
Available registrations:
{ Service: NSPersistentContainer, Factory: Resolver -> NSPersistentContainer, ObjectScope: container }
ParentProject からのアセンブリの例:
public class ParentProjectAssembly: Assembly {
...
public func assemble(container: Container) {
...
container.register(NSPersistentContainer.self) { _ in
return self.persistentContainer
}.inObjectScope(.container)
...
}
}
ChildProjectAssembly
この登録コードを に移動するか、両方に登録するかは問題ではありません。エラーは常に同じです。私のアセンブラはAssembler([ParentProjectAssembly(), ChildProjectAssembly()]
、(今のところ) ParentProject の AppDelegate にあります。すべてが正常に機能しているようで、assemble(container:)
メソッドにはすべてのアセンブリに対して同じコンテナがあり、いくつかの注入は機能しますが、他のものにはこのエラーがあり、objectScope をまったく指定せずにサービスを登録する必要があることを示唆していますか? それは不可能です。
ヘルプ
swift - タイプ「SwinjectStoryboardOption」はプロトコル「ServiceKeyOption」に準拠していません
クリーン インストールの直前に動作していたプロジェクト Cocoapods のクリーン インストールを行った後、コンパイルすると次のエラーが発生します。
どうすれば修正できますか?
swift - RxSwift:実際のオブザーバブルを別のView Controllerに渡しますか?
別のView Controllerから設定されたブール変数headerCollapsedについて知る必要があるView Controllerがあります。vc1 には次のものがあります。
ブール値を true に設定する関数:
次に、依存関係をさらに作成して vc1 を直接呼び出すことを避けるために、依存関係の挿入とルーターを介して、headerCollapsed ではなく、collapsedObservable を vc2 に渡そうとしています。問題を単純化しようとしていますが、実際には vc1 と vc2 の間にいくつかのレイヤーがあります。
ただし、ルータークラスの中でcollapsedObservableが何があってもnilであり、後でvc2内から呼び出すときにデフォルト値に設定して更新することができません。では、このように実際のオブザーバブルを渡すことは可能ですか?
ios - swinject 環境下でのストーリーボード コントロールのスタック
こんにちは、IOS プロジェクトに swinject を適用しようとしていますが、現在行き詰まっています..
アプリケーションに2つの部分があります
- ログイン部
- 主要部分
シナリオは、アプリケーションの開始時またはログインが成功したときにすでにログインしている場合は、メイン部分に移動する必要があり、それぞれにswinjectスコープがインスタンスを個別に管理する独自のストーリーボードがあることを願っています。
ログインが完了すると、メイン部分が注入されたインスタンスが新しく生成され、ログアウトが完了すると、LOGIN部分に戻り、メイン部分が注入されたインスタンスがなくなるはずです..
以下は私のView Controllerの構造です:
この指定により、以下のコードで MAIN ビューに移動しようとしていますが、エラーが発生し続けます。
これを解決するにはどうすればいいですか??