想要获取 # 的最后一次出现的索引,但是下面的代码对于其他字符可以正常工作,但是对于特别的 "#" 却不能给出完美的结果。
在 viewDidLoad 中代码能够正常工作,但是在 textfield shouldChangeCharactersInRange 中却不能正常工作。
代码:
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);
}
结果 :: a :: 17 @ :: 26 # :: 2147483647 $ :: 20
NSNotFound
。也许这些字符看起来相同,但实际上并不相同,或者其中有一个零宽度空格之类的东西? - Gerd K@"#"
字符串中有一个不可见的字符。使用箭头键在其上移动光标,您将看到它。 - Gerd K@ :: 26
:: 13
$ :: 20,我发现这个结果是纠正NSString拼写后得出的 - Jamil