我正在考虑有关
的一些细节stringByReplacingOccurrencesOfString:withString:in NSString class
根据文件。
它返回一个新字符串,其中接收器中所有出现的目标字符串都被另一个给定的字符串替换。
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
参数 目标 要替换的字符串。 替换 用于替换目标的字符串。
我的问题是,如果在目标字符串中找不到替换字符串。如果调用此功能会有一些副作用。
由于
例如
NSString *myString = [NSString stringWithString:@"Hello my string"];
NSString *myReplacementString = [myString stringByReplacingOccurrencesOfString:@"NOTFOUND" withString@"Any side effect?"];
NSLog(@"my replacement string is %@", myReplacementString);
答案 0 :(得分:2)
该功能没有副作用,如果在接收器中找不到搜索字符串,接收器将不加改变地返回。
答案 1 :(得分:1)
myString
,target
和replacement
如果找不到匹配项,则不会被修改:
该方法不会更改字符串myString
,但会创建一个包含结果的新字符串。
target
和replacement
是该方法的参数,其值不会发生变化。
myString
,target
和replacement
是不可变的字符串。
如果找不到匹配项,则没有错误或例外。
答案 2 :(得分:1)
没有副作用:如果原始字符串中没有要替换的子字符串,则最终会得到与您开始时相同的NSString
。
确实,(这是一个实现细节,你不应该依赖它,但是)你甚至不会得到原始字符串的副本,而是指向同一个字符串的指针。