2014-01-19 19 views
0

字符串裏面,我有一個if語句看起來像這樣:stringByReplacingOccurrencesOfString方法調用不會改變我調用它的一個for循環

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

我怎麼可以清楚地看到誰先回答?請參閱我問題底部的「PS」。 – user3117509

+0

將鼠標懸停在與帖子關聯的「已回答x分鐘」之前,查看時間戳。 http://i.stack.imgur.com/8JnzV.png –

+0

謝謝你的提示喬希。 – user3117509

回答

1

stringByReplacingOccurrencesOfString:withString:實際上返回一個字符串,並且不發生變異你所傳遞的字符串的方法

所以,你可能想要做這樣的事情,而不是:

numberValues = [numberValues stringByReplacingOccurrencesOfString:@"+" 
    withString:@""]; 
+0

我會在7分鐘內接受。現在你回答我感覺自己像個白癡一樣。方法調用的結果必須放在內部...我想我一直在盯着我的筆記本電腦太久了:) – user3117509

1
numberValues = [numberValues stringByReplacingOccurrencesOfString:@"+" 
    withString:@""]; 

stringByReplacingOccurrencesOfString返回一個新的字符串。將其分配給原始字符串。 。

+0

謝謝你的貢獻。 – user3117509