私はSwiftの単純な観測可能なオブジェクトを思いつき、RxSwiftを使うと思っています。私はこのような何か行う簡単な例を見つけることができませんでした:RxSwiftでシンプルな観測可能な構造体?
protocol PropertyObservable {
typealias PropertyType
var propertyChanged: Event<(PropertyType, Any)> { get }
}
class Car: PropertyObservable {
typealias PropertyType = CarProperty
let propertyChanged = Event<(CarProperty, Any)>()
dynamic var miles: Int = 0 {
didSet {
propertyChanged.raise(.Miles, oldValue as Any)
}
}
dynamic var name: String = "Turbo" {
didSet {
propertyChanged.raise(.Name, oldValue as Any)
}
}
}
を上記this blog postからの観測のための純粋なスウィフトソリューションです。私はそれがプロトコルベースのソリューションであり、侵襲的ではないことが本当に好きです。私の場合は、私のプロジェクトには、各プロパティがフードの下で非同期に設定されているオブジェクト(Bluetoothデバイス)があります。だから、私はリアルタイムでプロパティを取得/設定するのではなく、変更を観察/購読する必要があります。
私はRxSwiftがそれ以上のことを行うと聞いています。しかし、私はRxSwiftが私の必要性のために過度のものであると考えるために、上記と一致する簡単な例を見つけることができません。助けてくれてありがとう。すぐに、これはRxSwiftで観察は、おそらくRxSwiftクラス変数を使用することであろうようにする
それはおそらく良いだろう。これを解決するために、もちろん、多くの方法があり、RxSwiftyの方法は、おそらく通常の配列に減らすように多くの作品行いscan operation to your element sequenceを、追加することですあなたのプロジェクトからオブジェクトを取得し、そのプロパティをどのように設定するかを示します。 RxSwiftボックスには、この問題に適用できるさまざまなツールがあります。 –