NSMutableArray和副本

时间:2012-06-26 11:30:49

标签: objective-c ios uitableview nsmutablearray

我有3 NSMutableArrays:a,b,c。

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

首次复制的元素(来自b)会发生什么?

在我的use -case中,a是我用作tableview的DataSource的数组,而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];


        }


    }
}

2 个答案:

答案 0 :(得分:5)

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];

答案 1 :(得分:2)

它们被数组c的元素取代。只有在您实施了NSCopying委托后,才能使用附加副本。