sto usando RxSwift 2.0.0-betaRxSwift: Utilizzare Zip con diverso tipo osservabili
Come posso combinare 2 osservabili di tipo diverso in un lampo come il modo?
// This works
[just(1), just(1)].zip { intElements in
return intElements.count
}
// This doesn't
[just(1), just("one")].zip { differentTypeElements in
return differentTypeElements.count
}
La soluzione attuale che ho è di mappare tutto a un tupla opzionale che combina i tipi, quindi cerniere tuple opzionali in una non-optional.
let intObs = just(1)
.map { int -> (int: Int?, string: String?) in
return (int: int, string: nil)
}
let stringObs = just("string")
.map { string -> (int: Int?, string: String?) in
return (int: nil, string: string)
}
[intObs, stringObs].zip { (optionalPairs) -> (int: Int, string: String) in
return (int: optionalPairs[0].int!, string: optionalPairs[1].string!)
}
Questo è chiaramente piuttosto brutto però. Qual è il modo migliore?
Doh! Sono rimasto bloccato usando l'estensione zip della raccolta invece del solo 'zip'. Grazie! – GDanger
È sicuro presumere che lo zip sia sincrono? – user805981