問題タブ [reactive-cocoa-4]

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 に答える
255 参照

objective-c - ReactiveCocoa: オブザーバーにマップを適用するシグナルの作成

私が理解していることから、RACSubjectReactiveCocoa 4 に相当するのはObserverクラスです。信号とオブザーバーをリンクして、信号がイベントを送信し、オブザーバーに送信されたイベントにマップ操作を適用したいと考えています。Obj-C では、次のようになります。

誰かが に値をプッシュするとsomeActionsomeSignalは派生値を含むイベントを発生させます。Swiftで同じ効果を得るにはどうすればよいですか?

私がこれまでにできたことは、次のようなものです。

これは悪い解決策のように見えます。

  1. internalSignalプライベートにする必要がありますが、Signal のパイプと一致させるためにパブリックとして宣言する必要があります
  2. someSignalしたがって、同じ信号を何度も再利用できる場合でも、必要になるたびに計算されます。letまた、定数として宣言することはできません。
0 投票する
1 に答える
173 参照

ios - RAC MutableProperty プロデューサーがサブスクライバーにイベントを送信しない

サーバーから都市オブジェクトのリストを取得し、JSON として返す RAC4 を使用したアプリを開発しています。各都市とその適切なプロパティを City オブジェクトとして格納することで、応答を処理します。次に、各 City を CityViewModel 型にマップし、[CityViewModel] 型の配列を MutableProperty として格納します。ここから、各都市が tableViewCell にファイルされ、セル内に名前とダウンロードの進行状況バーを使用して表示されます。タップすると、セルは都市の nid (都市 ID) をパラメーターとして使用して別のサーバー要求をトリガーし、画像などを含む大きな .zip ファイルをダウンロードします。

ここでの目標は、進行状況のライブ更新でプログレス バーをアニメーション化することです。タップすると、セルはすべてを開始するdownloadCityData(nid: Int)関数を呼び出します。

問題は、都市のプロパティが更新されている間、都市がオブジェクトMutableProperty<[CityViewModel]>の外部で変更をリスナーに通知していないことです。DataViewModel(この場合はDetailViewController)

ビューコントローラー:

ビューモデル:

データ管理者:

シティビューモデル:

街:

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

swift - Reactive Cocoa を使用したラジオ ボタン ロジックとデッドロックの回避

私の目標は、ReactiveCocoa を使用してラジオ ボタンを実装することです。これは、子ビューモデルの配列があり、一度に選択状態にできるのは 1 つだけであることを意味します。また、必要なときにすばやく切り替える機能も必要multi-selectですが、私の問題はsingle-select. 以前に選択したアイテムをクリアしようとすると、デッドロックが発生します。以下のコードでは、次のエラーが発生します。

私がこれについてすべて間違っているのかどうかはわかりません。助けてください。

コードサンプル:

更新 1

そこで、ビュー モデル オブジェクト グラフがどのように変化するかについていくつかのルールを考え出すことで、問題を解決しました。

1) オブザーバブルの 2 つのセットがあり、1 つのセットは受信イベントを表し、もう 1 つのセットはビューモデルの状態を表す状態プロパティです。読み取りまたはバインドできる状態。

2) 状態プロパティの変更は、「イベントを監視している」場合にのみ実行でき、プロパティを監視している間は実行できません。これは、1 つの状態プロパティがそれ自体または別の状態プロパティを決して変更してはならず、その変化を観察してはならないことを意味します。

3) 着信イベントは他のイベントを開始できません。つまり、スタック/ランループ ループごとに 1 つのイベントです。

コードは次のようになります。

このパターンは、オブジェクト グラフの関係がより複雑になるにつれて、物事を単純に保つように感じます...おそらく。今はおそらくこれで行きますが、ReactiveCocoa の代替パターンや代替ライブラリを提案してください。

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

ios - ReactiveCocoa (4.2.1) と Swift による非同期イメージの読み込み

私はReactiveCocoaを Swift で初めて使用する初心者です。映画のリストを表示するアプリを作成しており、MVVM パターンを使用しています。私のViewModelは次のようになります:

そして、次のように UITableView でセルを構成したいと思います。

これは Reactive Cocoa の正しいアプローチですか? タイトルと説明を変更可能として宣言する必要がありますか、それとも単に画像として宣言する必要がありますか (変更するのは 1 つだけです)。バインディングを使用できると思いますが、続行する方法がわかりません。

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

swift - ReactiveCocoa-collectionViewのセルでシグナルを複数サブスクライブしないようにするにはどうすればよいですか

データをリロードすると、この方法が再び実装され、Signal が何度もサブスクライブされます。

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

ios - ReactiveCocoa Swift クラッシュ

アプリケーションの Hockeyapp で異常なクラッシュが発生しました

私はそれを再現することができませんでした。また、ゲッターでクラッシュが発生しますが、それは奇妙ではありませんか? または、何かが恋しいと思います...正確に見ていたかどうかはわかりません

さらに情報が必要な場合は、教えてください。手がかりがあれば、躊躇しないでください。

助けてくれてありがとう。

編集1:

これは、balancesInfo を使用したシグナル プロデューサーです。

これらのコード行は、balancesInteractor init にあります。

編集2:

これは、balanceInfo を作成するためのコードの行です。

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

ios - ReactiveCocoa 4 - 信号イベントの遅延とフィルタリング

ReactiveCocoa 4 を使用して検索テキストフィールドを実装しており、テキストが X 時間入力されなかった場合にのみ検索 API をヒットしたいと考えています。以前にスケジュールされたものをキャンセルし、textDidChange デリゲート メソッドで「executeSearch」セレクターを起動することで、以前にこれを行いました。これにより、入力するたびに、以前にスケジュールされた「executeSearch」セレクターがキャンセルされ、新しいセレクターが X 秒で起動するようにスケジュールされます。

これと同じ動作をしたいのですが、入力テキストにバインドされたシグナルプロデューサーからです。私の現在の実装は近いですが、同じではありません。この動作は、前のイベントをキャンセルするのではなく、テキスト入力イベントを 0.5 秒ごとに発生するように調整するだけです。

ReactiveCocoa 4 のドキュメントを調べて、どのシグナル関数を使用すべきかを判断するのに苦労しています! ありがとうございました!

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

ios - プロジェクトで新しいバージョンの RAC(ReactiveCocoa) を変更するには?

iOS 10 がリリースされる前にビルドした iOS プロジェクトを開くと、Swift のバージョンが原因で ReactiveCocoa に関するエラーが表示されます。Github で提供されている方法を使用しようとしましたが、失敗したようです。現在の Swift に変換しようとすると、少なくとも 18 個のエラーが発生します。