独自のカスタム シグナル フレームワークを使用するプロジェクトを、代わりに ReactiveSwift を使用するように変換することを検討していますが、ReactiveSwift で解決する方法がわからない根本的な問題があります。
簡単な例として、2 つの変更可能なプロパティがあるとします。
let a = MutableProperty<Int>(1)
let b = MutableProperty<Int>(2)
次に、両方を組み合わせてロジックを実装するプロパティを派生させます。
let c = Property.combineLatest(a, b).map { a, b in
return a + b
}
a
後で、との両方の値を同時に更新する情報を受け取りますb
。
a.value = 3
b.value = 4
ここでの問題c
は、値があることをリスナーに通知することです3 -> 5 -> 7
。5 は完全に偽りであり、有効な状態を表していません。これは、a
3 とb
2 に等しい状態が必要なかったからです。
これを回避する方法はありますか?すべての依存関係を新しい状態に更新している間、への更新を抑制し、Property
完了後にのみ更新を許可する方法はありますか?