需求
A页面有个数组arrayA 数组里放的是多个模型model
B页面有个数组arrayB
当A push B时,需要将arrayA传给arrayB
在B里改变arrayB的其中一个model的值
在返回的时候可以写个代理到A中,可以打印出,arrayA
的值也会跟着修改了
这时去打印两个数组的模型地址,应该可以看出model的地址是一样的
那现在我们就要用到copy
去生成一个新的实例了
我们自己定义的类需要在.h中遵循<NSCopying>
协议,然后在.m中实现方法copyWithZone:(NSZone *)zone
- (id)copyWithZone:(NSZone *)zone{
FnewModel *model = [FnewModel allocWithZone:zone];
model.text = self.text;
model.code = self.code;
model.showtype = self.showtype;
return model;
}
之后就可以在赋值的时候使用copy
了
for (FnewModel *model in savedArr) {
FnewModel *newM = [model copy];
[self.datas addObject:newM];
}
这样改变arrayB
中model的值时,arrayA
的值就不会跟着修改了