第一种(有发生替换):
如:
NSString * s = @"sss";
NSString * x = [s stringByReplacingOccurre ncesOfString:@"s" withString:@"x"];
返回一个新的指针,内容是@"xxx"。新指针的retainCount是1,不可以手动release,会autorelease。
第二种(没有发生替换):
如:
NSString * s = @"sss";
NSString * x = [s stringByReplacingOccurre ncesOfString:@"y" withString:@"x"];
因为没有发生替换,所以返回值还是原来的指针,内容还是@"sss"。这时候s的retainCount会被加1。
相当于NSString * x = [[s retain] autorelease];
建议:
如果需要多次替换字符串中的字符,最好不要使用stringByReplacingOccurre ncesOfString。应该使用NSMutableString的实例方法replaceOccurrencesOfStri
ng:withString:options:range:。
如:
NSString * s = @"sss";
NSString * x = [s stringByReplacingOccurre
返回一个新的指针,内容是@"xxx"。新指针的retainCount是1,不可以手动release,会autorelease。
第二种(没有发生替换):
如:
NSString * s = @"sss";
NSString * x = [s stringByReplacingOccurre
因为没有发生替换,所以返回值还是原来的指针,内容还是@"sss"。这时候s的retainCount会被加1。
相当于NSString * x = [[s retain] autorelease];
建议:
如果需要多次替换字符串中的字符,最好不要使用stringByReplacingOccurre