这里我在第二个vc中的一个vc传递中有一个可变数组,带有一些值。
我需要更改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;
}
答案 0 :(得分:8)
copy
方法创建对象的不可变副本。为了保持可变性,您需要使用-mutableCopy
代替或方便构造函数(假设您使用ARC,因此不需要自动释放等):
self.namesFoodSubCategory = [namesArray mutableCopy];
或
self.namesFoodSubCategory = [MSMutableArray arrayWithArray:namesArray];