問題タブ [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 に答える
188 参照

swift - SwInject を中央のオブザーバー パターンと組み合わせて使用​​する

SWInject を使用してアプリの依存関係を維持し、Coordinator パターンを使用してロジックと依存関係を管理しています。

SWInject は、アプリのさまざまな部分に複数のオブザーバーがある集中型プッシュ通知フレームワークと組み合わせて使用​​できますか?

通常、私は Singleton クラスでそれを行いますが、それを行うと、依存性注入パターンを使用する目的が無効になるようです。

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

ios - 「.inObjectScope(.Container)」がシングルトンを生成せずにSwinjectモデルクラスが登録されるのはなぜですか?

この質問は、Swinject for Swift の経験が豊富な人向けです。

問題のあるコードを示します。私の質問は一番下にあります。

かなり多くのコードがあります。申し訳ありません。

これはMySwinjectStoryboard.swift登録です:

これはStopwatch.swift、onComplete ハンドラーを起動する前にしばらく一時停止するだけです。

ImageService.swiftinit現在、関数を介してシグナルとストップウォッチ プロパティを受け入れるだけです。

SignalsService.swift現在、空の Model クラスです:

現在、注入されたプロパティを受け入れるだけのStartUpViewController.swift基本的なものです。UIViewController

最後にgetPrivateKey()、一意の Int を返す単純なグローバル スタティックです。

私が理解しているように、私が登録Stopwatch.swiftした方法MySwinjectStoryboard.swiftは、インスタンスが注入されるたびに、新しい個別のインスタンスになることを意味します。ただし、 と の両方ImageService.swiftStartUpViewController.swift同じインスタンスが挿入されています。

ImageServiceのキーは次のようになります。

なぜこれが起こっているのか知っている人はいますか?ありがとうございました。

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

swift - パラメータのない Swinject サービス クラスが Swift 3.0 の .container スコープに登録できない: なぜですか?

私は非常に単純なプロトコルを作成しました:

とサービス:

そして、次のSwinject登録が機能します。

しかし、次のものはそうではありません:

与えられたエラーは次のとおりです。

興味深いことに、次のように機能します (つまり、パラメーターを持つサービスをスコープに登録できます)。.container

私はこの同様の質問を読みましたが、役に立たなかった: Swinject - Ambiguous reference to member

よろしくお願いします。

0 投票する
2 に答える
1141 参照

ios - Swinject の異なる ViewController での依存性注入の不一致、Swift 3.0 の更新後: なぜですか?

私はいくつかのSwinjectsingleton-with-a-small-s (.container) サービスを登録しています:

それらをいくつかのView Controllerに挿入すると、次のようになります。

これらのビュー コントローラーは、次のSomeViewControllerように 2 つの異なる方法で表示されます。

そしてAnotherViewController、このように:

SomeViewControllerサービスが注入されますが、残念ながらAnotherViewControllerそうではありません。

これはSwinject、 が Swift 3.0 にアップグレードする前は機能していましたが、現在は機能していません。これはなぜですか、何を変更する必要がありますか?

ありがとうございました。

アップデート

残念ながら、私は の基礎となるコード ベースに精通してSwinjectおらず、自分自身を理解する時間もありませんが、表面下で何が起こっているかを掘り下げて、次のことを発見しました。

成功した VC DI:

失敗した VC DI:

その他の注意事項:

失敗した VC は、TabBarController 内の UIViewController であり、どちらも標準の XCode ストーリーボードに既に配置されています。

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

swift3 - Swift 3.0.1 の Swinject

現在、Swinject/Swinjectは swift 3.0 をサポートしています。
Swift 3.0.1 はいつサポートされますか?
誰でも何か考えがありますか?

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

ios - swinject - IOS - Swit - xib ファイルにあるビューコントローラーを提示 = クラッシュ

Swift 3 で swinject を使用しています。.xib ファイルにある別のビュー コントローラーである現在のビュー コントローラーに表示しようとしています。

swinject を使用しないプロジェクトで実行すると、機能します。私のプロジェクトでは、swinject を使用するとクラッシュします: libc++abi.dylib: 型 NSException のキャッチされない例外で終了します

ビューコントローラーを定義するために使用するコードは次のとおりです。

現在のviewControllerにtestViewControllerを表示しようとする方法は次のとおりです(たとえば、ボタンをクリックしたIBActionで):

成功せずに別のソリューションを試しました。swinject を削除することはできません (この選択は私のものではありません)。さまざまなステップで表示するビューコントローラーがたくさんあるため、.xib ファイルを使用する必要があります。

助けてくれてありがとう。オリビエ