我很难掌握这个问题。说我有:
NSMutableArray *array1
已经定义并且有内容。
现在我想创建另一个变量NSMutableArray *array2
。
当我[array2 addObject:someObject]
时,我希望将此对象添加到array1
,而不是array2
。如何指定array2
,以便在对其进行任何更改时,它会修改array1
?
答案 0 :(得分:2)
你会做这件事:
NSMutableArray *array1 = [NSMutable arrayWithObjects:...];
NSMutableArray *array2 = array1;
[array2 addObject:someObject];
NSLog(@"%@", array1); // should now contain 'someObject'
但是,我很困惑,为什么你要创建两个指向同一个对象的指针?
答案 1 :(得分:1)
如果我的意思正确,您正在寻找array2
成为array1
的别名。您需要做的就是将array1
分配给array2
:
NSMutableArray *array2 = array1;
现在调用[array2 addObject:someObject]
会将元素添加到array1
。
但是,array2
不是array1
的副本: array1
只是的另一个名称。如果您创建副本,它将是原始的完全独立。特别是,向副本添加元素不会以任何方式更改原始内容。