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".