第一種(有發(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孙乖。
相當(dāng)于NSString * x = [[s retain] autorelease];
建議:
如果需要多次替換字符串中的字符浙炼,最好不要使用stringByReplacingOccurrencesOfString。應(yīng)該使用NSMutableString的實例方法replaceOccurrencesOfString:withString:options:range:唯袄。