如果我有NSMutableArray:
NSMutableArray *principalTable;
我有另一个NSMutableArray:
NSMutableArray *secondTable;
我这样做:
[secondTable addObject:@"string"];
[principalTable addObject: secondTable];
[secondTable removeAllObjects];
principalTable有1个对象,但是这个对象里面没有任何东西。所以我的问题是:
答案 0 :(得分:2)
[secondTable addObject:@"string"];
[principalTable addObject: secondTable];
[secondTable removeAllObjects];
执行上述操作时,principalTable
将包含对secondTable
NSMutableArray实例的引用,并且不将直接包含该字符串。因此,当您removeAllObjects
时,您正在清空secondTable
,principalTable
将继续保留对现在为空的可变数组的引用。
您的所有代码都没有复制任何内容。
NSMutableDictionary
复制密钥。不是价值观。
答案 1 :(得分:0)
数组包含指向您添加的对象的引用(即指针)。因此,当您从secondTable中删除所有对象时,您从同一个作为主表的元素的数组中删除了它。