0
votes

Vérifiez si la valeur entière d'un champ de texte est valide dans une instruction de commutation [Swift]

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!")
}


1 commentaires

Cela n'a aucun sens d'allumer quelque chose appelé caractèresTextfields . 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".


4 Réponses :


0
votes

Il est plus facile si vous utilisez gardien Let : xxx


0 commentaires

0
votes

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!")
    }


0 commentaires

1
votes

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       
}


0 commentaires

0
votes

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)
        }


0 commentaires