Bei einem nicht optionalen Wert, wie kann ich mit einem optionalen in einer switch-Anweisung übereinstimmen?Match optional in switch-Anweisung
Zum Beispiel:
let test = "some string"
let x: String? = nil
let y: String? = "some string"
let z: String? = "another string"
switch test {
case x:
print(x)
case y:
print(y)
case z:
print(z)
default: break
}
Ergebnisse in: 'String'
Expressionsmuster von Typ können keine Werte vom Typ ‚String‘ entsprechen den schnellen docs auf patterns und switch aber ich kann nicht scheinen zu finden, einen Weg, um diese Arbeit zu machen
für jeden case
...
Ich habe gelesen.
Ich weiß, ich kann dieses Problem umgehen, aber es muss ein Weg, um diese Arbeit zu machen ...
bearbeiten
Wie gewünscht, hier mein eigentlicher Anwendungsfall ist. Beachten Sie alle Textfelder sind optional ...
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// TODO: Replace with switch if possible
// switch textField {
// case nameTextField:
// usernameTextField?.becomeFirstResponder()
// case usernameTextField:
// dateOfBirthTextField?.becomeFirstResponder()
// case dateOfBirthTextField:
// phoneTextField?.becomeFirstResponder()
// case phoneTextField:
// phoneTextField?.resignFirstResponder()
// default: break
// }
if textField == nameTextField {
usernameTextField?.becomeFirstResponder()
} else if textField == usernameTextField {
dateOfBirthTextField?.becomeFirstResponder()
} else if textField == dateOfBirthTextField {
phoneTextField?.becomeFirstResponder()
} else if textField == phoneTextField {
phoneTextField?.resignFirstResponder()
}
return false
}
Für mich ist das eigentlich zu allgemein eine Frage. Sie müssen mit etwas spezifischerem konfrontiert werden - etwas weniger "theoretisch". Könnten Sie * diesen * Code posten? – dfd
@dfd Siehe Aktualisierung. – doovers