J'ai un peu de mal à essayer de supprimer le dernier caractère d'un NSString . Je suis un débutant en Objective-C et je ne sais pas comment faire pour que cela fonctionne.
Pourriez-vous m'éclairer?
NSString *newString = [oldString substringToIndex:[oldString length]-1];
Toujours se référer à la documentation :
Pour inclure le code correspondant à votre cas:
NSString *str = textField.text;
NSString *truncatedString = [str substringToIndex:[str length]-1];
Essaye ça:
s = [s substringToIndex:[s length] - 1];
NSString *string = [NSString stringWithString:@"ABCDEF"];
NSString *newString = [string substringToIndex:[string length]-1];
NSLog(@"%@",newString);
Vous pouvez voir = ABCDE
NSString = *string = @"abcdef";
string = [string substringToIndex:string.length-(string.length>0)];
S'il y a un caractère à supprimer (c'est-à-dire que la longueur de la chaîne est supérieure à 0) (string.length>0)
renvoie 1, rendant ainsi le code retournant:
string = [string substringToIndex:string.length-1];
S'il n'y a PAS de caractère à supprimer (c'est-à-dire que la longueur de la chaîne n'est PAS supérieure à 0) (string.length>0)
renvoie 0, rendant ainsi le code retournant:
string = [string substringToIndex:string.length-0];
qui empêche les accidents.
Ce code renverra simplement le dernier caractère de la chaîne et ne le supprimera pas:
NSString *newString = [oldString substringToIndex:[oldString length]-1];
vous pouvez utiliser ceci pour supprimer le dernier caractère et conserver les valeurs restantes d'une chaîne:
str = [str substringWithRange:NSMakeRange(0,[str length] - 1)];
et également en utilisant substringToIndex à une chaîne NSString avec 0 longueur provoquera des plantages.
vous devriez ajouter une validation avant de le faire, comme ceci:
if ([str length] > 0) {
str = [str substringToIndex:[s length] - 1];
}
avec cela, il est prudent d'utiliser la méthode de sous-chaîne.
REMARQUE: Apple rejettera votre application si elle est vulnérable aux plantages.
Simple et meilleure approche
[mutableString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];