在for循环中,我有一个if语句,如下所示:
if([numberValues rangeOfString:@"+"].location == NSNotFound) {
NSLog(@"Phone Number does not contain a plus sign.");
} else {
NSLog(@"Phone number does contain a +");
[numberValues stringByReplacingOccurrencesOfString:@"+" withString:@""];
NSLog(@"This new numberValues object should not have a + anymore: %@", numberValues);
}
我可以确认rangeOfString:
方法调用是否完美,因为我的地址簿中的电话号码不是以“+”开头,而是会打印“电话号码不包含加号”。到日志。
我的问题是stringByReplacingOccurrencesOfString:
来电不起作用。在通话结束后,当我将numberValues
对象数据打印到日志时,电话号码仍然看起来像“+13997573173”,而不是没有像“13997573173”这样的加号打印。
我甚至尝试将方法调用中的“+”更改为电话号码的前4位数字,但仍然不会用新字符串替换目标字符串。
每次只打印相同的值。有什么想法stringByReplacingOccurrencesOfString:
对我不起作用?
答案 0 :(得分:1)
numberValues = [numberValues stringByReplacingOccurrencesOfString:@"+"
withString:@""];
stringByReplacingOccurrencesOfString
返回一个新字符串。将其分配给原始字符串。
答案 1 :(得分:1)
方法stringByReplacingOccurrencesOfString:withString:
实际上返回一个字符串,并且不会改变你传入的字符串。
所以你可能想要做这样的事情:
numberValues = [numberValues stringByReplacingOccurrencesOfString:@"+"
withString:@""];