NSMutableArray使用另一个变量访问数组

时间:2012-02-06 16:18:17

标签: objective-c

我很难掌握这个问题。说我有:

NSMutableArray *array1已经定义并且有内容。 现在我想创建另一个变量NSMutableArray *array2

当我[array2 addObject:someObject]时,我希望将此对象添加到array1,而不是array2。如何指定array2,以便在对其进行任何更改时,它会修改array1

2 个答案:

答案 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只是的另一个名称。如果您创建副本,它将是原始的完全独立。特别是,向副本添加元素不会以任何方式更改原始内容。