私は Swift で単純な観察可能なオブジェクトを考え出そうとしていますが、 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)
}
}
}
上記は、このブログ投稿からのオブザーバブルに対する純粋な Swift ソリューションです。侵襲的ではなく、プロトコルベースのソリューションであることが本当に気に入っています。私の場合、プロジェクトにオブジェクトがあり、各プロパティが内部で非同期に設定されています (Bluetooth デバイス)。したがって、プロパティをリアルタイムで取得/設定するのではなく、変更を監視/サブスクライブする必要があります。
RxSwift がまさにそれ以上のことを行うと聞いています。ただし、上記に一致する簡単な例が見つからず、RxSwift は私のニーズに対してやり過ぎだと思い始めていますか? 助けてくれてありがとう。