2017-06-09 2 views
-5

J'ai ce code:Retirez premier caractère de chaîne

func barcodeData(_ barcode: String!, type: Int32) { 

     referenceField.text = barcode! 

    } 

Lorsque je scanne un code-barres est le champ de texte remplacé par celui-ci. C'est toujours un "R" au début du code à barres suivi de quelques chiffres.

Je souhaite que le champ de texte affiche uniquement les nombres. Donc, si le code à barres scanné est "R454512", je veux que le champ de texte affiche seulement "454512"

Quelqu'un pourrait-il m'expliquer cela? Je suis assez nouveau dans ce monde de codes à barres. Je n'ai encore aucune valeur alors comment suis-je supposé l'utiliser?

Merci

+0

Que voulez-vous dire par ** Je n'ai pas encore des valeurs ** n » t vous obtenez la valeur 'R454512' dans l'argument' barcode'. –

+0

J'ai la fonction qui utilise un périphérique externe pour scanner un code à barres. Mais je ne connais pas le code à barres tant qu'il n'a pas été scanné? Alors, comment suis-je censé taper let text = "R454512"? S'il y a d'autres valeurs aussi? – moseby

+0

@moseby Ecrire comme ceci 'referenceField.text = String (barcode.characters.dropFirst())' –

Répondre

1

Une autre façon de le faire est avec un characterSet. De cette façon, s'il y a plus de lettres ou espaces au début ou à la fin de la chaîne, vous obtiendrez le résultat correct:

barcode.trimmingCharacters(in: CharacterSet.decimalDigits.inverted)