問題タブ [rx-swift]
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 - RxSwift - デバウンス/スロットル「逆」
メッセージが到着するたびにビープ音を鳴らすインスタント メッセージング アプリがあるとします。ビープ音を鳴らしたいdebounce
のですが、次のメッセージではなく、最初に届いたメッセージに対してビープ音を鳴らしたいと思います (たとえば、2 秒間)。
もう 1 つの例として、アプリが入力通知を送信する (チャットしているユーザーが、私がメッセージを入力していることを確認できるようにする) ことが考えられます。入力を開始したときに入力通知を送信したいのですが、新しいものは X 秒間隔でのみ送信するため、入力するすべての文字に対して入力通知を送信するわけではありません。
これは理にかなっていますか?そのためのオペレーターはありますか?既存の事業者で実現できるか?
これは最初の例の私のコードです。で解決していますがdebounce
、理想的ではありません。1 秒間隔で 1000 件のメッセージを受信すると、最後のメッセージが到着するまでサウンドが再生されません (最初のメッセージでサウンドを再生したい)。
ありがとう!
swift - Observable から値を 1 つだけ取得する
私は ReactiveCocoa から来て、RxSwift で始めています。概念的な質問があります。
温度など、時間の経過とともに観察したい値があるとしましょう。そのため、変更に対応するためにこの値をサブスクライブするケースや場所がたくさんあります。問題ない!
しかし、最新の値が必要なだけのユースケースもあります。
したがって、その値または少なくともその値に基づいて決定/操作を行いたいだけです。これにより、shareReplay オブザーバブルの使用に近づきます。しかし、一度だけ使用したい場合でも、その値をサブスクライブする必要がありますか?
それとも、このアプローチはまったく間違っていますか? そのユースケースをどのように行いますか(時間の経過に伴う値と、最後の値に1回だけアクセスする場合)? ソースが必要ですか?
ios - UIApplicationDelegate メソッドを RxSwift Observables に変換する
RxSwift / RxCocoa では、デリゲート (UIScrollViewDelegate
または などCLLocationManagerDelegate
) のリアクティブ ラッパーを作成して、特定のデリゲート メソッドの Rx オブザーバブル シーケンスを有効にすることができます。
UIApplicationDelegate
メソッドにこれを実装しようとしていますapplicationDidBecomeActive:
これまでに試したことは非常に単純でDelegateProxy
、RxCocoa に含まれているサブクラスに似ています。
DelegateProxy
サブクラスを作成しました:
および Rx 拡張機能UIApplication
:
私の AppDelegate では、オブザーバブルにサブスクライブします。
アプリを起動すると「アクティブ!」印刷され、RxCocoa の_RXDelegateProxy_
クラスで次のクラッシュが発生します。
問題が何であるかを知っている人はいますか?または、誰かが次のようなものを正常に実装しましたrx_applicationDidBecomeActive
か?
ios - RxSwift rx_text 双方向バインディングのクラッシュ
<->
例の演算子を使用して、単純な双方向バインディングを実行しようとしています。
このテキストビューを編集すると例外が発生し、解決方法がわかりません。
私はこれを再現することができ2.1.0
ます2.2.0
これを修正する方法について誰か考えがありますか?
swift - RxSwift 正しい方法
RxSwift で MVVM を作成しようとしていますが、Objective-C の ReactiveCocoa で行っていたことと比較すると、正しい方法でサービスを作成するのが少し難しくなっています。
例として、ログイン サービスがあります。
ReactiveCocoa (Objective-C) を使用して、次のようなコードを作成します。
私のviewModelは次のようになります。
今RxSwiftで私は次のように書いています:
これが機能しないため、ボタンの状態をこのように変更しています。
と私のviewModel
と
Driver を使用しているのは、catchErrorJustReturn() などのいくつかの優れた機能をラップしているためですが、これを行う方法が本当に好きではありません。
1) ユーザー名とパスワードのフィールドをパラメーターとしてビューモデルに送信する必要があります (ちなみに、その方が解決しやすいです)
2)ログインボタンがタップされたときにviewControllerがすべての作業を行う方法が好きではありません。viewControllerは、ログインアクセスを取得するためにどのサービスを呼び出す必要があるかを知る必要はありません。これはviewModelの仕事です。
3 ) サブスクリプションの外部にあるユーザー名とパスワードの保存された値にアクセスできません。
これを行う別の方法はありますか?Rx'ersはこの種のことをどのようにしていますか?どうもありがとう。
swift - RxSwift で配列プロパティの変更を観察する方法
これが私のクラスです:
次のように、myArray が新しい配列を指すたびにイベントを発生させたいと考えています。
rx_observe を試しましたが失敗しました。これが私のコードです。
初回のみ起動しますが、何が問題なのですか?