2012-03-30 89 views
2

我想一些細節方面討論 「stringByReplacingOccurrencesOfString:withString:」

stringByReplacingOccurrencesOfString:withString:在NSString類

據文件。

它返回一個新字符串,其中接收方中所有出現的目標字符串被另一個給定的字符串替換。

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement 

參數 目標 替換的字符串。 替換 用於替換目標的字符串。

我的問題是,如果在目標字符串中找不到替換字符串。如果會有一些副作用來調用這個函數。

感謝

例如

NSString *myString = [NSString stringWithString:@"Hello my string"]; 
    NSString *myReplacementString = [myString stringByReplacingOccurrencesOfString:@"NOTFOUND" [email protected]"Any side effect?"]; 
    NSLog(@"my replacement string is %@", myReplacementString); 
+0

你是什麼意思的副作用?更改字符串? – mattjgalloway 2012-03-30 08:05:29

回答

1

有沒有副作用:如果要替換的子串在原字符串不會發生,你最終的NSString等同於您開始使用一個。確實,(這是一個實現細節,你不應該依賴它,但是)你甚至不會得到原始字符串的副本,而是一個指向同一個確切字符串的指針。

2

那個函數沒有副作用,如果搜索字符串沒有在接收器中,接收器將返回不變。

1
  1. myStringtargetreplacement如果發現或不被修改是否匹配沒有:

    • 不改變串myString到位,但該方法創建一個新的字符串,它包含結果。

    • targetreplacement是方法的參數,它們的值不會被改變。

    • myString,targetreplacement是不可變的字符串。

  2. 如果找不到匹配項,則沒有錯誤或例外。