NSMutableArray添加或删除
问题描述:
这里我有一个可变数组在一个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;
}
答
copy
方法创建对象的不可变副本。为了保护你需要使用-mutableCopy
代替或便捷构造的可变性(假设你使用ARC,所以不需要自动释放等):
self.namesFoodSubCategory = [namesArray mutableCopy];
或
self.namesFoodSubCategory = [MSMutableArray arrayWithArray:namesArray];
我更喜欢第二个例子。 – badweasel 2013-03-15 15:25:26
我习惯第二个例子,但我认为他们之间的选择只是个人喜好的问题 – Vladimir 2013-03-15 15:34:42
谢谢兄弟 – user2128531 2013-03-17 18:35:37