Objective c 如何为一个字符串提供多个引用
请检查下面的代码,我正在为数组创建多个引用Objective c 如何为一个字符串提供多个引用,objective-c,nsstring,Objective C,Nsstring,请检查下面的代码,我正在为数组创建多个引用 NSMutableArray *array1 = [[NSMutableArray alloc] init]; NSMutableArray *array2 = array1; [array1 addObject:@"One"]; [array1 addObject:@"Two"]; NSLog (@"Array1 %@",array1); NSLog (@"Array2 %@",array2); 控制台输出为 阵列1( 一,, 二)阵列2( 一,
NSMutableArray *array1 = [[NSMutableArray alloc] init];
NSMutableArray *array2 = array1;
[array1 addObject:@"One"];
[array1 addObject:@"Two"];
NSLog (@"Array1 %@",array1);
NSLog (@"Array2 %@",array2);
控制台输出为
阵列1(
一,,
二)阵列2(
一,,
二)
Array1和Array2都引用同一地址
就像我试过NSMutableString一样,我没有成功
NSMutableString *str1 = [[NSMutableString alloc] init];
NSMutableString *str2 = str1;
str1 = @"Hello";
NSLog (@"Str1 : %@", str1);
NSLog (@"Str2 : %@", str2);
控制台输出为Str1 Hello Str2(空)
有没有办法引用字符串?一切都很正常。与:
str1 = @"Hello";
str1
不再指向上面两行分配的内存<代码>str2没有更改,仍然指向该内存位置
对于数组和字符串,您给出的示例看起来不一样。在第一种方法中,将对象添加到一个数组中,但不要更改任何指针的值
在第二步中,您将修改对对象的引用
第二个示例应写成如下内容:
NSMutableString *str1 = [[NSMutableString alloc] init];
NSMutableString *str2 = str1;
[str1 appendString:@"foo"];
NSLog (@"Str1 : %@", str1);
NSLog (@"Str2 : %@", str2);
输出:
Str1:fooStr2:foo
给定同一可变字符串(一个内存位置)上的两个引用,并使用
NSMutableString
的方法,两个引用都将被修改。我的要求是让str1和str2指向同一内存,当我更改其中任何一个字符串时,应该同时更新这两个引用,这就是我编写的代码应该做的。请参阅更新的答案