J'ai essayé de vérifier si la valeur entière d'un champ de texte est valide dans une instruction de commutation afin de couvrir des cas plus possibles plutôt que des déclarations si / electriques.
switch characterTextFields {
case Int(characterTextFields[1].text!) == nil:
validationErrorModal(text: "Level must be a number!")
}
4 Réponses :
Il est plus facile si vous utilisez gardien Let code>:
Voici la façon dont vous pouvez y parvenir:
switch Int(characterTextFields[1].text!) {
case nil:
validationErrorModal(text: "Level must be a number!")
default:
validationErrorModal(text: "Level is a number!")
}
Vous pouvez utiliser commutateur code> pour cela, mais vous devez basculer sur ce numéro, pas sur le champ d'entrée: switch level {
case 0:
break
default:
break
}
Il serait préférable de valider comme ils tapent. Vous devriez mettre en œuvre un UitextFieldelegate. Puis implémenter cela dans votre délégué:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//Check for illegal characters
return (string.rangeOfCharacter(from: CharacterSet(charactersIn: "0123456789").inverted) == nil)
}
Cela n'a aucun sens d'allumer quelque chose appelé
caractèresTextfields code>. Le commutateur doit être sur la valeur à apparier contre les cas. Il serait plus facile de vous aider si vous nous diriez quels sont les "cas plus possibles".