問題タブ [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 の RxJava onErrorResumeNext 演算子の類似物は何ですか?
RxSwift でエラーが発生した場合は、一連のアイテムを発行する必要があります。JAVA では「onErrorResumeNext」演算子で実行できます。しかし、Swift で同じ演算子またはその代替を見つけることができません。
ios - RxSwift の RACCommand に相当するものは何ですか?
ビューとビューモデルがあります。ビューにはボタンが含まれており、ユーザーがボタンを押すたびに、ビュー モデルに通知する必要があります。また、最初のビュー モデルがイベントを取得したときに、2 番目のビュー モデルに通知する必要があります。
したがって、タップ イベントは次のように伝播されます。
にバインドbutton.rx_tap
することviewModel1.onButtonTapped()
でこれを設計できますが、サブスクライブしてイベントも取得したいのでviewModel2
、アクションを受け取って伝播するある種のオブザーバブルが必要です。それが何をするかだと思いますRACCommand
。
RxSwift を使用してこれを実装するにはどうすればよいですか?
ios - オブジェクトを RxSwift アクションのサブスクライバーに送信
以前は Objective-C で ReactiveCocoa を使用していましたが、RAC4 よりも理解しやすい RxSwift に切り替えました。ただし、RAC で使用していた便利な機能があります。
これにより、コマンドの実行状態と実行シグナルをサブスクライブできるようになり、呼び出しから返されるデータを観察できるようになりました。
これを RxSwift Action で再現する方法がわかりません。実行中のオブザーバブルにのみサブスクライブできます。
ただしPublishSubject
、応答データを送信するために追加を作成する必要があります。
アクションを使用してRxSwiftで同様のパターンを作成する方法はありますか?
ios - RxSwift フィルター 変数配列
こんにちは、RxSwift ライブラリを理解し、より優れた機能的なコードを書こうとしています。
現在、私は非常に基本的な問題で立ち往生しています。次のタイプの変数を取得したとしましょうVariable<[CiteModel?]>
:
allCites
ここで、特定のテキストを含む配列からすべての引用をフィルタリングし、それらを に追加したいと考えていshownCites
ます。
これは私が試したものですが、フィルターブロック内が期待どおりで$0
は[CiteModel?]
ない CiteModel?
ため、コンパイルできません。私が何を間違えたのか説明してもらえますか?
上記のコードを実行したときのエラー:
swift - RxSwift を使用した一般的な変換方法の問題
タイプと進行状況をラップするこの結果データ型が呼び出されました
これは構造体 (ObjectMapper)AnyObject
に変換する必要があるMappable
ため、これらの Mappable 構造体がいくつかあるため、次のような汎用マップを使用できるようにしたいと考えました。
これはコンパイルできないため、上記の定義は間違っているようです。Cannot explicitly specialize a generic function
ここで何が間違っていますか?
swift - RxSwift で 2 つの通知オブザーバーをマージする
私はこのコードを持っています:
指定された通知のいずれかをリッスンし、いずれかがトリガーされたときに処理することになっています。
ただし、これはコンパイルされません。次のエラーが表示されます。
これら2つの信号を1つにマージするにはどうすればよいですか?
ios - ネットワーク呼び出し後の UIRefreshControl へのバインディング
私はRxSwiftが初めてで、ターゲットを作成する通常の方法ではなく、UITableViewでUIRefreshControlを「リアクティブに」使用し、手動で and を呼び出す方法を考えていましbeginRefreshing()
たendRefreshing()
。
たとえば、API からいくつかの文字列を読み込んでいるとします。
MyAPI
いくつかの文字列値のリクエストを送信します。ネットワーク リクエストを終了 (またはエラー) したときrefreshControl
に呼び出しをバインドし、getData()
更新を停止するにはどうすればよいですか? refreshControl.rx_refreshingにバインドする必要がありますか?
ios - UICollectionViewControllerの適切なMVVMアーキテクチャは何でしょうか
RXSwiftとMVVMを使ってiPad用のアプリを作っています。
UICollectionView を持つ UIViewController と、dataSource および collectionView のデリゲートとして機能する ViewModel があります。
コレクション セルの機能の一部は、ボタンをタップしてポップオーバーを表示することです。現在、iOS 9 (おそらくそれ以前) の新しいポップオーバー機能では、View Controller 内で通常どおりビューを表示し、popoverPresentationController を変更する必要があります。
さて、私が知る限り、UICollectionViewCell から UIViewController を提示することはできません。理にかなっています。
しかし、これを行う唯一の方法は、ViewController を指すデリゲートを持つことです。
クラス ダイアグラム (添付) を見ると、viewModel はセルのデキュー時にデリゲートを設定する必要があります。これを行うには、ViewModel は、どの ViewController をデリゲートとして設定するかを知る必要があります。これは、viewModel のポイントに反すると確信しています。MVVM (for iOS) によると、ビュー モデルはビュー コントローラーについて認識すべきではありません。ビューコントローラーは、ビューモデルについて知ることができます。
それで私の質問は、MVVMに続いてこれを行うための最良の方法は何ですか? dataSource/Delegate を別のクラスに移動する必要がある場合は、それで十分です。
swift - 初期化時に RxSwift PublishSubject が意図せずトリガーされる
ボタンのクリックを転送するために PublishSubject を使用しようとしています。ただし、この PublishSubject は初期化時にトリガーされ、それが私のロジックに干渉します。これは私がやっていることです:
(この初期化行は、最初の Next イベントをトリガーします)
次に、ボタンタップアクションで:
そして、次のようにサブスクライブします。
初期化時に公開された最初の「次の」イベントをトリガーせずにこれを行う方法はありますか?
乾杯!
ios - subscribeNext と bindNext の違い
RxSwift を使用していますが、subscribeNext と bindNext の違いは何ですか?
ご意見ありがとうございます。