問題タブ [reactive-cocoa]
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.
objective-c - RACSequence のすべての項目を観察する
次のように、ViewModel オブジェクトの RACSequence を返す ParentViewModel のメソッドがあります。
各 ViewModel には、列挙型である状態プロパティがあり、NotStarted、InProgress、および Completed の 3 つの状態があります。シーケンス内のすべての ViewModel の状態が Completed になると、ParentViewModel が有効であることがわかります。ViewModels シーケンスから有効な事実を導き出したい ParentViewModel に validSignal があります。現時点では、次のコードがあります。
これにより、シーケンス内のすべての ViewModel が有効かどうかがわかります。これを、ViewModel のいずれかの状態プロパティが変更されるたびに更新される RACSignal に変換するにはどうすればよいでしょうか?
mvvm - View Model での RACCommand のテスト
ビュー モデルで RACCommand を実行した結果をテストしようとしています。
次のように送信コマンドを設定しました。
createSubmitCommand は、ビュー モデルを初期化すると呼び出され、validSignal はテスト コンテキストで有効です。
Core Data の永続化には MagicalRecord を使用し、テストには Kiwi を使用しています。[[viewModel submitCommand] execute: nil] を呼び出すときに、モデルが保存されていることをテストする必要があります。
私のテストは次のようになります。
問題は、保存が非同期でブロックされず、テストが終了して NSManagedObjectContext が破棄され、テストが失敗することです。自分がしようとしているテストが完全に間違っているか、RACCommand を誤用しているように感じますが、どちらが正しいかわかりません...
ios - ReactiveCocoaシグナルから現在の値を取得するには?
NSNumber を返すシグナルがあります。
次に、コードのどこかで、実行の瞬間にシグナルの値を取得したいのですが、次のようなものです。
objective-c - 「Reactive Cocoa」の方法でコレクションを取得する方法をどのように記述しますか?
私が構築しているクライアントはOctokitでReactive Cocoaを使用しており、これまでのところ非常にうまくいっています。しかし今、私はリポジトリのコレクションをフェッチしたいところにいて、これを「RACの方法」で行うのに頭を悩ませています
-subscribeNext:
私は当初、が を渡すと想定していNSArray
ましたが、「次の」オブジェクトが返されるたびにメッセージを送信することがわかりました。この場合はOCTRepository
.
今、私は次のようなことができます:
確かにこれは機能しますが、RAC が可能にする機能原則に従っていないようです。私は本当にここで慣習に固執しようとしています。RAC/Octokit の機能に光を当てていただければ幸いです。
objective-c - Recursive -flattenMap: Reactive Cocoa + OctoKit (Web サービスから動的オブジェクト グラフをフェッチ)
Reactive Cococaに依存するOctokitを使用して、Github リポジトリ内のファイルのオブジェクト グラフをプリフェッチしようとしています。フェッチするディレクトリがなくなるまで、再帰的にドリルダウンするシグナルを作成する際に問題が発生しています。これは、私のリポジトリのディレクトリ グラフの例です(注: グラフをシンプルかつクリーンに保つために、ファイルは省略されています)。
注:-fetchContents:forRepository:
はリクエスト パスを作成しRACSignal
、HTTP リクエスト操作をキューに入れる を返します ( OctoKit が行うセマンティクスに従おうとします)。
私が現在直面している問題は、このセットアップがリポジトリのコンテンツ (つまり、グラフの最上位オブジェクト) のフェッチのみを実行することです。-flattenMap:
が呼び出され、シグナルの配列が適切に作成され、-merge:
が返されます。目的は、ディレクトリ タイプの子がなくなったときに終了する再帰チェーンを作成することです (おそらく、-filter:
それを確認するために a を追加する必要があります)。
目的は、Github リポジトリのファイルのグラフ全体をフェッチし、操作が終了したときに通知を受けることです。これを呼び出す方法の例を次に示します。
トップレベルのみを実行する理由は何ですか? を呼び出すと返されたシグナルが実行-subscribeNext:
されると思っていたのですが、何か誤解しているようです。この仮定は、Reactive Cocoa の readme にある連鎖の例から来ています。-fetchContentTreeForRepository:
-flattenMap:
編集:私はばかです。
ios - ReactiveCocoa を使用した iOS アプリ用の ViewModel パターン
私は、ネットワークからの簡単なキャッシュ/プリフェッチ (および MVVM の他のすべての利点) を可能にする ViewModel レイヤーを作成することを目標に、私のプロジェクトに RAC を統合することに取り組んでいます。私はまだ MVVM や FRP に特に精通していませんが、iOS 開発用の再利用可能な素敵なパターンを開発しようとしています。これについていくつか質問があります。
まず、これは、ViewModel をビューの 1 つに追加した方法のようなものです。試してみるためです。(これは後で参照したいと思います)。
ViewController viewDidLoad では:
ViewModel.h
ViewModel.m
私は信号を使用している方法で正しいですか?bioSignal
具体的には、データを更新するだけでなくhiddenBioSignal
、textView の非表示プロパティに直接バインドする必要があることは理にかなっていますか?
私の主な質問は、デリゲートによって処理されたであろう懸念をViewModelに移動することです(うまくいけば)。デリゲートは iOS の世界では非常に一般的であるため、これに対する最善の解決策、または適度に実行可能な解決策を見つけたいと思います。
たとえば、UITableView の場合、delegate と dataSource の両方を提供する必要があります。コントローラーにプロパティを設定し、NSUInteger numberOfRowsInTable
それを ViewModel のシグナルにバインドする必要がありますか? また、RAC を使用して TableView にセルを提供する方法がよくわかりませんtableView: cellForRowAtIndexPath:
。これらを「従来の」方法で行う必要があるだけですか、それとも細胞に何らかのシグナルプロバイダーを用意することは可能ですか? それとも、ViewModel はビューのソースを変更するだけで、ビューの構築に実際に関与するべきではないため、そのままにしておくのが最善でしょうか?
さらに、サブジェクト (fetchDoctorSubject) の使用よりも優れたアプローチはありますか?
他のコメントも同様に高く評価されます。この作業の目標は、バックグラウンドでデータをロードする必要があるときにいつでも通知できるプリフェッチ/キャッシュ ビューモデル レイヤーを作成し、デバイスでの待機時間を短縮することです。これから再利用可能なもの (パターン以外) が出てくる場合、それはもちろんオープンソースになります。
編集:そして別の質問:ドキュメントによると、メソッドの代わりにViewModelのすべてのシグナルにプロパティを使用する必要があるようです? initでそれらを設定する必要があると思いますか?または、ゲッターが新しいシグナルを返すようにそのままにしておく必要がありますか?
active
ReactiveCocoa の github アカウントにある ViewModel の例のようなプロパティが必要ですか?
objective-c - RACSignal: 任意に大きな結合を減らす方法
とテキスト フィールドが一致するかどうかに基づいて有効になるReactiveCocoa Introductionの例 (言い換え) を考えてみましょう。.password
.passwordConfirm
ここで、コンパイル時に結合するものの数と内容を認識し、「結合」配列をreduceブロックへの複数の引数に分解/マップすると便利です。それがうまくいかないときはどうなりますか。たとえば、次のようにします。
ReactiveCocoaでこれを行うにはどうすればよいですか?
更新: 受け入れられた回答のコメントは、私が見逃していたものを説明するのに役立ちます。
ios - RAC ライブラリを XCode に追加する方法
Reactive Cocoa ライブラリを Xcode プロジェクトに追加しようとしていますが、できません。Reactive Cocoa のページにあるチュートリアルが理解できないので、チュートリアルを探しています。このライブラリを自分のプロジェクトに追加するにはどうすればよいですか?
ios - ReactiveCocoa を使用したビュー間の通信?
誰が Reactive Cocoa の機能を理解しようとしています...そのフレームワークに関するドキュメントや例はあまりありません。異なるビュー間で信号を送信するために使用する必要があります。私のビューには、テーブルと別のビューコントローラーがあり、セルが選択されたときに他のビューコントローラーに信号を送信する必要があります...リアクティブココアを使用して異なるビュー間で信号を送信するにはどうすればよいですか? ありがとう