我试图在 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 解决方案;我真的很喜欢它是一个基于协议的解决方案而不是侵入性的。就我而言,我的项目中有一个对象,其中每个属性都是在后台异步设置的(蓝牙设备)。所以我需要观察/订阅更改,而不是实时获取/设置属性。
我一直听说 RxSwift 会做到这一点,甚至更多。但是,我找不到一个简单的例子来匹配上面的内容,并开始认为 RxSwift 对我的需要来说太过分了?谢谢你的帮助。