NSMutableArray和副本

问题描述:

我有3 NSMutableArrays:a,b,c。NSMutableArray和副本

a= [b copy]; 
a= [c copy]; 

第一次复制的元素(从b)会发生什么?

在我的使用-case中,a是一个数组,我用它作为DataSource的tableview,而b,c是需要的时候代替数据源的数组。 谢谢

具体的例子。最后我得使用setArray。

-(IBAction)selectTab:(id)sender { 
    if ([(UIButton*)sender tag] == 1000) { 
     if (![self.butonLocuri isSelected]) { 

      [tableDataSourceArray setArray:locuriArray]; 
      [self addPins:self.tableDataSourceArray]; 
      [self.myTableView reloadData]; 
     } 
    } 

    if ([(UIButton*)sender tag] == 2000) { 

     if(![self.butonEvenimente isSelected]){ 

      [tableDataSourceArray setArray:evenimenteArray]; 
      [self addPins:self.tableDataSourceArray]; 
      [self.myTableView reloadData]; 


     } 


    } 
} 
+0

这段代码是用ARC还是没有ARC编译的? – tia

a= [b copy]; // a is pointing to [b copy] memory location. 
a= [c copy]; // a is pointing to [c copy] memory location. 

您应该使用setArray:方法。

[a setArray:b]; 
[a setArray:c]; 
+0

如果a有1个元素,c有4个元素,[a setArray:c]之后,a只有1个元素。它是否正确?它似乎发生在我的情况。 –

+0

不,这是不正确的。 –

+0

粘贴有问题的代码。 –

它们被数组c的元素替换。 Plus复制只适用于你已经实现NSCopying委托。