RxSwift如何使用combineLatest?

chi*_*dro 20 reactive-programming observable ios swift

我已经定义:

let currentHours:Variable<Float> = Variable(0.0)
let currentRate:Variable<Float>  = Variable(0.0)
Run Code Online (Sandbox Code Playgroud)

我想用combineLatest制作一个Observable来总结这两个值:

Observable.combineLatest(currentHours, currentRate, { (h, r) -> Float in
    return Float(h+r)
})
Run Code Online (Sandbox Code Playgroud)

我也尝试:

let c =  Observable.combineLatest(currentHours, currentRate) { $0 + $1 }
Run Code Online (Sandbox Code Playgroud)

我总是遇到编译错误.谢谢

Erk*_*ken 50

试试这个:

let currentHours:Variable<Float> = Variable(0.0)
let currentRate:Variable<Float>  = Variable(0.0)

let hoursAndRate = Observable.combineLatest(currentHours.asObservable(), currentRate.asObservable()){
        return $0 + $1
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,关键是在函数参数中将currentHours和currentRate 作为Observable传递.