問題タブ [typhoon]
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 - plist がアクティブ化されているアセンブリにアクセスするにはどうすればよいですか?
Typhoon の plist 統合を使用するようにプロジェクトを移行しています。キーに追加したアセンブリTyphoonInitialAssemblies
がアクティブ化されていることがわかりますが、アクティブ化されたアセンブリにアクセスする方法がわかりません。
ios - プロパティを注入できません。セッター セレクターが見つかりません
Typhoon と Swift を使用して、プロジェクトをセットアップしていますが、この問題があります。TPLAddInteractor
私はこのようにクラスを持っています
私のアセンブリは次のようになります
そして、アプリを実行した直後に次のエラーが表示されます。
Typhoon の Swift の例を読んでいますが、コードに異常は見当たりません。しかし、私はSwiftが初めてなので、何かが足りないかもしれません。
ありがとう
ios - Typhoon: ランタイム引数をシングルトンに注入する
シングルトンの作成時にランタイム引数をシングルトンに挿入し、それ以降はそれらの引数を記憶させる方法を見つけようとしています。ただし、実行時引数のインターフェイスがこれをサポートできるかどうかはわかりません。たとえば、トークンを必要とする Client オブジェクトがあり、次の初期化子があるとします。
トークンは実行時にサーバーから取得され、ユーザーごとに異なるため、単純に NSString を定義に入れることはできません。そこで、Typhoon アセンブリに次のメソッドを作成します。
ただし、将来 (このクライアントを他のクラスに注入するとき)、このメソッドを呼び出すためのトークンが手元にありません。[self client]
したがって、たとえば、単に注入できるようにしたいと考えています。クライアントはシングルトンであり、既に作成されているため、とにかくトークンは必要ありません。
しかし、私はこれを行う方法を見つけることができないようです。明らかに、呼び出される別のメソッドを定義するとclient
、別のクライアントが返されます。クライアントが既に存在する場合、呼び出すだけclientWithToken:nil
で引数は無視されますか? おそらく、アセンブリのsingletons
配列をトラバースすることはうまくいくでしょうが、それは明らかに非常に洗練されていません。
タイプごとに注入することを検討しましたが (メソッドを呼び出す必要はありません)、同じタイプの異なるクライアントが複数あるため、どのクライアントを注入するかを明示する必要があります。もちろん、このパラメーターを初期化子から削除し、代わりにアセンブリの外部からプロパティとして設定するオプションもあります。ただし、このパターンはアプリケーション全体で使用されるため、それほど多くのコードを書き直すことは避けたいと考えています。
ありがとうございました。
ios - TyphoonConfig が間違ったバンドル パスで plist をロードしようとしています
私は Typhoon が初めてで、Configuration.plist を正しくロードする方法がわかりません。私のプロジェクトは、Swift PocketForecast の例をモデルにしていますが、独自の CocoaPods ベースのプロジェクトから始めて、自分で Typhoon を追加しました (つまり、複製された PocketForecast プロジェクトから始めたわけではありません)。複数のアセンブリとの plist 統合を使用しています。
これを使用する場合:
ファイルが見つからないというエラーが表示され、デバッガーでそのパスが「/path/to/MyProject.app/Frameworks/Typhoon.framework」であることがわかりますが、もちろん私の構成ファイルはそこにはありません。 「/path/to/MyProject.app/Configuration.plist」にあります。はい、ファイルが実際に存在することを確認しました。
私は次のようなことをして、この問題を解決しようとしました:
そして奇妙なことに、これは機能します – 時々。ランダムに表示され、他の Typhoon アセンブリが読み込まれる順序に基づいています。言い換えれば、すべてがうまく機能することもありますが、台風の初期化で「ID XYZ に一致するコンポーネントがありません」や「構成に値が見つかりません」などのさまざまなエラーが発生することもあります。しかし、私が言ったように、時にはうまくいくこともあります。
Typhoon の初期化方法の基本的な部分が欠けているに違いないので、どんな助けも大歓迎です!
編集: Swift プロジェクトの静的ライブラリの代わりにフレームワークを使用する CocoaPods の問題により、上記で試した最初の方法が失敗しているように見えますか? TyphoonResource でこのコードを見つけました。
Typhoon フレームワーク内のクラスに解決されるので[self class]
、なぜそれがバンドルであり、それが使用しているバンドルなのかがわかると思いますが、私にはバグのように思えます。これが PocketForecast アプリを壊さない理由を突き止めることができるかどうか見ていきます。
ios - TyphoonConfig を手動で変換する
基本的に私はこのようなことをしたいと思っています。
ただし、TyphoonConfig() は Type TyphoonInjectionByConfig からのものです。
TyphoonConfig オブジェクトを手動で変換することは可能ですか、それとも注入する必要があり、その後変換されますか?