問題タブ [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 - Realm notification to RX block
I would like to hide my Realm implementation and instead of working on RLMNotificationBlock
I would like to use RXSwift. Below how my method looks like now (RLMNotificationBlock
is a block that takes String and RLMRealm
):
But I would like to switch to more reactive observer-pattern way. I looked at RxSwift docs and source code of rx_clickedButtonAtIndex
, but I cannot figure out how I should put all these things together. I guess my code at the end would look like:
I'm new with RXSwift and know only the basics. Any help will be appreciated.
swift - RxSwift Way To Map and Bind UITextView's Text to Custom Object's text field?
I know I can do the following to map changes to a custom object's Notes' text field to a UITextView.
How can I do the reverse using the same kind of pattern? The pattern is notesTextView.rx_text, map it to the current note's text. I know how to do the following which feels non-RxSwift-y:
IOW, it seems like I should be able to take the UITextView (aka notesTextView), map, and bind changes into the current note. Current note returns a Variable with a Note having a text String field.
ios - ネストされたサブスクライブでリクエストを送信せずに、UIButton の rx_tap をネットワーク リクエストに直接変換する方法は?
UIButton があるとしますloginButton
。次のコードでボタンをタップしながらネットワーク リクエストを送信します。
その場合、ネットワークリクエストでエラーが発生しても、ボタンをタップすることでリクエストを再送信できます。
コードは非常にうまく機能しますが、ネストされたサブスクリプションのために少し見にくいと思いました。flatMap
サブスクリプションを平坦化する方法を試しました:
上記の 2 つのスニペットは異なるロジックのようです。後者のサブスクリプションは、ボタンがタップされるたびにネットワーク リクエストをサブスクライブするのではなく、通常のサブスクリプションと同じようにエラーが発生していない間のみ機能します。
正式なスニペットを平坦化する方法はありますか?
ネストされたサブスクリプションのスニペットを追加しました:
エラーは、次のコードを使用してキャッチできます。
必要に応じて、ネットワーク リクエストもキャンセルする必要があります。上記のスニペットで手動で破棄するdisposable
と、サブスクリプションが破棄され、リクエストを再度送信できなくなります。
ios - RxSwift を使用して、有効なテキストに基づいて UIButton を有効にする方法は?
RxSwift/RxCocoa 2.0.0- beta 3 では、次の ViewModel を使用しています。
ViewController のテキスト フィールドに someString を既にバインドしています。
someString (より適切な方法であればテキスト フィールド) が変更されるたびに、someString が有効かどうかに基づいてボタンを有効にする必要があります。
「Observable< Bool >」を使用してみましたが、別の道をたどり始めました。ViewController でこれを行うことができます。
isValidSomeString(text) アプローチよりも冗長でない別の方法はありませんか? 既に、combineLatest を使用した Observable< Bool > を返す isValidLogin で素晴らしい成功を収めています。
swift - 未知の数の Observable を組み合わせる
RxSwiftを使用しています。どのUIが表示されるかに依存するテキストフィールドの配列があります。配列内に 1、3、または 4 つのテキストフィールドを持つことができます。
配列を反復処理して、フィールドが有効かどうかを示すブール値にマップするシグナルをそれぞれに作成します。
通常、複数のシグナルを組み合わせるには、combineLatest
which has multiple versions を使用して、異なる数の引数を受け取ります。3 つのシグナルがある場合、通常は次のようになります。
結合される信号の数が不明な場合に、信号を結合する方法はありますか?
または、可変数のジェネリック引数を持つ関数を作成する方法はありますか? これが、いくつのシグナルかを知らずに複数のシグナルを結合する関数を作成するための出発点になると考えています。
swift - RxSwift: テキストフィールドに基づく有効化/無効化ボタンが空ではありません
RxSwift を使用して、2 つのテキスト フィールドの文字数に基づいてボタンを有効にする必要があります。
最後に、これを行うことで達成しますが、それが最善の方法かどうかはわかりません:
最終版を編集:
swift - Observable をオーバーライドする方法テストのために?
Swift 2.x (最新) を使用しており、コードを BDD (単体テスト) したいと考えています。余談ですが、RxSwiftも使用しています。オーバーライドされたメソッドは、カスタム テスト スタブでは呼び出されません。私たちのコード:
テストのために、次のテスト コードがあります。
Observable< String > を返す fetchSomething の代わりに、Observable< T > を返し、テストのために StubSomethingAPI がそれを正常にオーバーライドするようにしたいと考えています。どうすればそれができますか?