オプションではない値を指定すると、switch文のオプションとどのように一致させることができますか?例えばswitch文でオプションで一致する
:中
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
}
結果: '?文字列' タイプの
発現パターン各
case
...は「文字列」
タイプの値と一致することはできません私はpatternsとswitchに迅速ドキュメントを読んだが、私は、この作品を作る方法を見つけるように見えることはできません。
私はこの問題を回避することができます知っているが、この作品を作る方法がなければならない...
編集
要求されたとして、ここに私の実際のユースケースがあります。すべてのテキストフィールドは、あなたが以下などのoptional
case
に確認することができ、オプション...
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
}
これは実際にはあまりにも一般的な質問です。より具体的なものに直面する必要があります。あなたは*コードを投稿できますか? – dfd
@dfdアップデートを参照してください。 – doovers