2017-10-18 1 views
0

MutablePropertyの値を設定すると、プロデューサは同じ値の新しいイベントを送出しますか?プロパティの既存の値を持つイベントを発行しないようにプロデューサを制限する方法はありますか?

つまり、同じ値の新しいイベントが必要ない場合は、これを行う必要がありますか?=チェック?

let really = MutableProperty<Bool>(false) 

func updateReality(newReality: Bool) { 
    if really.value != newReality { 
     really.value = newReality 
    } 
} 

答えて

0

プロパティは、以前の値と同じでも常に新しい値を送信します。この方法でなければ、Equatableタイプでは使用できませんでした。しかし、あなたはEquatableタイプ、Boolのように、そしてあなただけの新しい値を受け取る新しいプロパティを作成し、消費者にそのプロパティを公開するためにあなたの財産上のskipRepeats operatorを使用することができますを扱っている場合:あなたがそう

let really = MutableProperty<Bool>(false) 
let reallyWithNoRepeats = really.skipRepeats() 

値はreally.valueで更新されますが、消費者はreallyWithNoRepeatsに登録して新しい値のみを取得します。

関連する問題