2

在这里,我在第二个 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;
}
4

1 回答 1

8

copy方法创建对象的不可变副本。为了保持可变性,您需要使用-mutableCopy替代或便利构造函数(假设您使用 ARC,因此不需要自动释放等):

self.namesFoodSubCategory = [namesArray mutableCopy];

或者

self.namesFoodSubCategory = [MSMutableArray arrayWithArray:namesArray];
于 2013-03-15T15:10:21.467 回答