Vous voulez obtenir l'indice de la dernière occurrence de # mais le code ci-dessous fonctionne bien pour l'autre personnage, mais ne pas donner un résultat parfait pour particularité « # »dernière constatation Index (position) du caractère (#) dans NSString
Code Fonctionne correctement dans viewDidLoad mais ne fonctionne pas dans textfield shouldChangeCharactersInRange.
code:
txtTest.text = @"@ashish @test #vijay $4030 @post";
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSRange range = [textField.text rangeOfString:@"a" options:NSBackwardsSearch];
NSLog(@"a :: %d ",range.location);
range = [str rangeOfString:@"@" options:NSBackwardsSearch];
NSLog(@"@ :: %d ",range.location);
range = [str rangeOfString:@"#" options:NSBackwardsSearch];
NSLog(@"# :: %d",range.location);
range = [str rangeOfString:@"$" options:NSBackwardsSearch];
NSLog(@"$ :: %d\n",range.location);
}
Résultat :: a :: 17 :: @ 26 # :: 2147483647 :: $ 20
C'est 'NSNotFound'. Peut-être que les personnages ont la même apparence mais ne le sont pas, ou y a-t-il un espace de largeur nulle là-dedans? –
Oui, il y a un caractère invisible dans votre chaîne '@" # "'. Utilisez les touches fléchées pour déplacer le curseur à travers et vous le verrez. –
Copié et collé sur Xcode (ceci peut autoformer certaines choses, peut-être même encoder des choses). Correction de typo NSString sur la première ligne, fonctionne bien. – lupz