查找字符(#)的最後一個索引(位置)想要得到的排名,但對於其它字符做工精細婁代碼中最後一次出現的索引,但沒有給予完美的結果的特殊性,「#」中的NSString
代碼在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);
}
結果:: 一個:: 17 :: @ 26 #:: 2147483647 $ :: 20
這就是'NSNotFound'。也許這些字符看起來是相同的,但不是,或者在那裏有一個零寬度的空間或一些這樣的? –
是的,你的'@「#」'字符串中有一個不可見的字符。使用箭頭鍵將光標移到它上面,你會看到它。 –
複製並粘貼到Xcode(這可能autoformat一些事情,甚至可能編碼的東西)。修正了第一行的NSString錯字,運行良好。 – lupz