RxSwift: wählen Sie die Zip mit verschiedenen observablen geben

Ich bin mit RxSwift 2.0.0-beta

Wie kann ich die kombinieren 2 observablen der verschiedenen Arten in eine zip-Manier?

//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
}

Die aktuelle vorläufige Lösung ich habe ist die Karte alles, was für eine optionale Tupel, das die Typen, dann die Reißverschlüsse optional Tupel in eine nicht-optionale.

    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!)
    }

Dass klar ist ziemlich hässlich aber. Was ist der bessere Weg?

InformationsquelleAutor GDanger | 2015-12-04
Schreibe einen Kommentar