2013-03-15 56 views
2

这里我有一个可变数组在一个vc通过第二个vc与一些值。NSMutableArray添加或删除

我需要更改self.namesFoodSubCategory中的值问题是否也会改变第一个vc数组中的值。

现在,如果我将其更改为self.namesFoodSubCategory = [namesArray copy] ; 现在它复制良好,但我不能添加或删除self.namesFoodSubCategory中的元素,它会导致崩溃。

任何人都可以帮助我吗?

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParamArray:(NSMutableArray *)namesArray 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     self.namesFoodSubCategory = namesArray ; 

     NSLog(@"In Sec %@",self.namesFoodSubCategory); 

    } 
    return self; 
} 

回答

8

copy方法创建对象的不可变副本。为了保护你需要使用-mutableCopy代替或便捷构造的可变性(假设你使用ARC,所以不需要自动释放等):

self.namesFoodSubCategory = [namesArray mutableCopy]; 

self.namesFoodSubCategory = [MSMutableArray arrayWithArray:namesArray]; 
+0

我更喜欢第二个例子。 – badweasel 2013-03-15 15:25:26

+0

我习惯第二个例子,但我认为他们之间的选择只是个人喜好的问题 – Vladimir 2013-03-15 15:34:42

+0

谢谢兄弟 – user2128531 2013-03-17 18:35:37