E 'un po' goffo, ma si può fare questo con un switch
su una tupla di variabili:
var fooOptional: String? = "foo"
var barOptional: String? = "bar"
switch (fooOptional, barOptional) {
case let (.Some(foo), .Some(bar)):
println(foo + bar)
default:
break
}
La volta che uso questo sta perforando giù in un dizionario nidificato , come un oggetto JSON grande - è grande perché si può gestire ogni singolo caso di errore a parte:
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
}
fonte
2014-11-24 17:00:16
La tua risposta è migliore della mia!:) – matt
È possibile con Swift 1.2, che è stato appena rilasciato! http://www.codingexplorer.com/multiple-optional-bindings-swift-1-2/ (So che questa domanda è vecchia, ma nel caso qualcuno venga a cercare, potresti voler aggiornare la tua risposta) – SeeMeCode