2012-03-30 92 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. 如果找不到匹配项,则没有错误或例外。