数组存放同一个对象多次坑

Posted 菜鸟好笨笨!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组存放同一个对象多次坑相关的知识,希望对你有一定的参考价值。

无语,明知道这个坑,为了调试方便,结果又踩进去了

  1、  HistoryStateModel * cellModel1 = [[HistoryStateModelalloc] init];

    cellModel1.valueName = @"中航铁锂电池";

    cellModel1.flag = YES;

 

2、 NSMutableArray *tmpArr3 =[NSMutableArray arrayWithObjects:cellModel1,cellModel1,cellModel1, nil];

 3、  HistoryStateModel *tmpModel = tmpArr[2];

        tmpModel.flag = NO;

        [tmpArr replaceObjectAtIndex:i withObject:tmpModel];

4、HistoryStateModel *Model = tmpArr[0];

   NSLog(@"%d",Model.flag);

 

惊奇的发现居然是0,没有看错,在工程里就类似这个Demo,只不过是分成了好多层,好多地方,结果忘记了,一直纠结咋回事儿,什么bug,百思不得其解

突然发现居然数组里对象居然是同一个地址,马勒戈壁的,坑呀!

以上是关于数组存放同一个对象多次坑的主要内容,如果未能解决你的问题,请参考以下文章

多次使用相同的模拟对象/数组时,如何在没有引用问题的情况下导入模拟数据以进行测试

redux dispatch 多次触发

Android踩坑日记:监听软键盘多次调用和刷新系统相册和获取所有相片

Android踩坑日记:监听软键盘多次调用和刷新系统相册和获取所有相片

LABVIEW如何实现数组多次条件判断,并且替换数组中的值

componentWillReceiveProps 多次渲染