不可变字符串.....
NSString *str1 = @"Hello Testing";
NSString *str2 = str1;
替换第二个字符串
str2 = @"Hello hehehe";
并列出它们的当前值
NSLog(@"str1 = %@, str2 = %@", str1, str2);
//logs as below
//str1 = Hello Testing, str2 = Hello hehehe
可变字符串
设置两个变量指向同一个字符串
NSMutableString * str1 = [NSMutableString stringWithString:@"Hello Testing"];
NSMutableString * str2 = str1;
替换第二个字符串
[str2 setString:@"Hello ikilimnik"];
//并列出它们的当前值
NSLog(@"str1 = %@, str2 = %@", str1, str2);
//logs as below
//str1 = Hello ikilimnik, str2 = Hello ikilimnik
请注意,当您使用不可变字符串类时,replace 字符串的唯一方法是创建一个新字符串并更新您的变量 str2 以指向它。
但这不会影响 str1 指向的内容,因此它仍会引用原始字符串。
在NSMutableString 示例中,我们不创建第二个字符串,而是更改
现有的Hello Testing 字符串。由于两个变量继续指向同一个字符串对象,它们都会在调用NSLog时报告新值。
区分指针变量和它指向的实际对象很重要。
NSString 对象是不可变的,但这并不能阻止您更改指向字符串的变量的值。