To trochę niezgrabne, ale można to zrobić z switch
na krotki swoich zmiennych:
var fooOptional: String? = "foo"
var barOptional: String? = "bar"
switch (fooOptional, barOptional) {
case let (.Some(foo), .Some(bar)):
println(foo + bar)
default:
break
}
Czas Używam tego wiercenia w dół do zagnieżdżonego słownika , jak wielki obiekt JSON - to super, bo można obsługiwać każdy przypadek błędu oddzielnie:
switch (dict["foo"], dict["foo"]?["bar"], dict["foo"]?["bar"]?["baz"]) {
case let (.Some(foo), .Some(bar), .Some(baz)):
// do things
case (.None, _, _):
// no foo
case (_, .None, _):
// no bar
default:
// no baz
}
Twoja odpowiedź jest lepsza niż moja!:) – matt
Możesz z Swift 1.2, który właśnie został wydany! http://www.codingexplorer.com/multiple-optional-bindings-swift-1-2/ (Wiem, że to pytanie jest stare, ale na wszelki wypadek, jeśli ktoś przyjdzie, możesz zaktualizować swoją odpowiedź) – SeeMeCode