在过去的几天里,我一直在研究一些基础知识,我意识到我从来没有真正理解为什么 NSString/NSMutableString 的传递引用不起作用。
- (void)testing{
NSMutableString *abc = [NSMutableString stringWithString:@"ABC"];
[self testing:abc];
NSLog(@"%@",abc); // STILL ABC
}
-(void)testing:(NSMutableString *)str {
str = [NSMutableString stringWithString:@"HELP"];
}
我该怎么做?我希望我的测试方法能够从 main 方法操作字符串。我一直在将它与可变数组、字典等一起使用,并且工作正常。感觉很奇怪,我从来没有意识到它是如何与字符串一起工作的。
但是值会以这样的方式发生变化,这是对第一个字符串的引用
NSMutableString *string1;
NSMutableString *string2;
string1 = [NSMutableString stringWithString: @"ABC"];
string2 = string1;
[string2 appendString: @" HELP"];
NSLog (@"string1 = %@", string1); // ABC HELP
NSLog (@"string2 = %@", string2); // ABC HELP