En Objective C pour l’iPhone, comment j’ai supprimer le dernier caractère d’une chaîne à l’aide d’une action du bouton.
Réponses
Trop de publicités?Dans votre contrôleur de classe, de créer une méthode d'action vous permettra d'accrocher le bouton jusqu'à dans Interface Builder. À l'intérieur de cette méthode, vous pouvez découper votre chaîne comme ceci:
if ([string length] > 0) {
string = [string substringToIndex:[string length] - 1];
} else {
//no characters to delete... attempting to do so will result in a crash
}
Si vous voulez une façon élégante de le faire en une seule ligne de code, vous pouvez l'écrire comme:
string = [string substringToIndex:string.length-(string.length>0)];
*Explication de la fantaisie d'une ligne de code suivante:
Si il y a un caractère à supprimer (c'est à dire la longueur de la chaîne est supérieure à 0)
(string.length>0)
retours 1
rendant ainsi le code de retour:
string = [string substringToIndex:string.length-1];
Si il n'est PAS d'un caractère à supprimer (c'est à dire la longueur de la chaîne n'est PAS plus grand que 0)
(string.length>0)
retours 0
rendant ainsi le code de retour:
string = [string substringToIndex:string.length-0];
Ce qui empêche les accidents.
Les solutions données ici ne tiennent pas compte de la multi-octets caractères Unicode ("composé de caractères"), et pourrait entraîner la non valide chaînes Unicode.
En effet, l'iOS fichier d'en-tête qui contient la déclaration de substringToIndex
contient le commentaire suivant:
Astuce: Utiliser avec rangeOfComposedCharacterSequencesforrange: pour éviter de casser composé de caractères
Voir comment utiliser rangeOfComposedCharacterSequenceAtIndex:
pour supprimer le dernier caractère correctement.