关于NSMutableArray的问题

时间:2010-08-27 19:35:13

标签: iphone objective-c

如果我有NSMutableArray:

NSMutableArray *principalTable;

我有另一个NSMutableArray:

NSMutableArray *secondTable;

我这样做:

[secondTable addObject:@"string"];

[principalTable addObject: secondTable];

[secondTable removeAllObjects];

principalTable有1个对象,但是这个对象里面没有任何东西。所以我的问题是:

  • 当我在数组中添加一个对象时,该数组指向该对象,还是复制该数组中的对象?
  • 当我加入一个nsmutabledictionnary时它是一回事吗?

2 个答案:

答案 0 :(得分:2)

[secondTable addObject:@"string"];

[principalTable addObject: secondTable];

[secondTable removeAllObjects];

执行上述操作时,principalTable将包含对secondTable NSMutableArray实例的引用,并且将直接包含该字符串。因此,当您removeAllObjects时,您正在清空secondTableprincipalTable将继续保留对现在为空的可变数组的引用。

您的所有代码都没有复制任何内容。

NSMutableDictionary复制密钥。不是价值观。

答案 1 :(得分:0)

数组包含指向您添加的对象的引用(即指针)。因此,当您从secondTable中删除所有对象时,您从同一个作为主表的元素的数组中删除了它。