I have the following Forecast
class:
class Forecast {
let city: City
var currentTemperature: String {
didSet {
print("cur tepm was set to \(currentTemperature)")
}
}
init(city: City) {
self.city = city
self.currentTemperature = "0"
}
func loadForecast() {
self.currentTemperature = "+10"
}
}
我试图观察ForecastViewModel
中forecast
对象的currentTemperature
属性。
class ForecastViewModel {
fileprivate let variableForecast: Variable<Forecast>
var navigationTitle: Observable<String> {
return Observable.just("No name")
}
init(forecast aForecast: Forecast) {
self.variableForecast = Variable(aForecast)
self.variableForecast.asObservable().subscribe(onNext: { (s) in
print(s.currentTemperature)
})
variableForecast.value.currentTemperature = "-15"
variableForecast.value.loadForecast()
}
}
然而,subscribe on next 中的代码只会执行一次,并打印 0。每次都会调用 didSet
块。
我应该如何观察这个类的属性?
ForecastViewModel
内部创建它,并在ForecastViewModel
的init
中从forecast
模型初始化其值。然后在其.subscribe
回调中,更新forecast
模型中的值。 - Kamran