第一種(有發(fā)生替換):
如:
NSString * s = @"sss";
NSString * x = [s stringByReplacingOccurrencesOfString:@"s" withString:@"x"];
返回一個新的指針撑帖,內(nèi)容是@"xxx"豌拙。新指針的retainCount是1驻呐,不可以手動release,會autorelease践磅。`
第二種(沒有發(fā)生替換):
如:
NSString * s = @"sss";
NSString * x = [s stringByReplacingOccurrencesOfString:@"y" withString:@"x"];
因為沒有發(fā)生替換单刁,所以返回值還是原來的指針,內(nèi)容還是@"sss"府适。這時候s的retainCount會被加1羔飞。
相當于NSString * x = [[s retain] autorelease];
建議:
如果需要多次替換字符串中的字符,最好不要使用stringByReplacingOccurrencesOfString檐春。應(yīng)該使用NSMutableString的實例方法replaceOccurrencesOfString:withString:options:range:逻淌。