星空网 > 软件开发 > 操作系统

界面传值时数组赋值问题

今天调了一个bug费了很多时间,这里做一下笔记。

项目中简单的两个控制器进行属性传值

YuLanViewController *vc = [[YuLanViewController alloc] init];vc.dataArray = self.images; vc.returnDataBlock = ^(NSInteger indexOfData) {   [self.images removeObjectAtIndex:indexOfData];   // 刷新   [self configImages];};[self.navigationController pushViewController:vc animated:YES];

在vc界面对dataArray做操作,删除一张图片,在pop回去上一个界面的images也是变化了。

原因是:vc.dataArray = self.images; 直接赋值造成指针地址拷贝,修改同一个对象

解决:   vc.dataArray = self.images.mutableCopy; // 返回对象的地址和方法接收者的地址不一样,所以本身对象的增加,删除等操作不影响另一个

界面传值时数组赋值问题
同时也可以看到,两个数组中存储的对象地址都是一样的,就是指针赋值。

所以啊 我在vc删除一张图片之后用了一个block操作来同步刷新前一个界面的数据,然后一直数组越界,就是因为相当于做了2次删除操作。




原标题:界面传值时数组赋值问题

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

Anker造 660亿神话,给跨境人带来五点启示!:https://www.ikjzd.com/articles/128534
独立站:今年比较火热的运营模式:https://www.ikjzd.com/articles/128536
亚马逊配送小知识:https://www.ikjzd.com/articles/128537
箱里藏刀!这个七夕真的要“孤寡”吗?:https://www.ikjzd.com/articles/128538
日出1单和日爆3000单的卖家,究竟差在哪?:https://www.ikjzd.com/articles/128539
绝望!黑五过后的退货堆积成山,电商卖家退货处理全攻略:https://www.ikjzd.com/articles/12854
长治婚庆女司仪和主持人:https://www.vstour.cn/a/366176.html
北京丰台区水上乐园哪家好玩?:https://www.vstour.cn/a/366177.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流