2013-03-15 85 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