iOS 数组中元素是model组成的数组的拷贝
2019-05-29 本文已影响0人
wsmmint
在进行产品筛选配置中,一直有个bug没有解决,就是在筛选选项为图1的时候点击重置,选项就会变成每一栏中的第一个选项如图2。不点击确定,关闭筛选框,再打开筛选按钮,筛选框中的三个选项都是第一个选择项图2。
正常情况下点击重置,不点确定按钮,再打开还应该是图1的样子。
于是想在点击重置时,重新写一个数组,来拷贝原有数组来进行展示。
用普通拷贝方法 [dataArray copy] 在对拷贝后的数组进行数据内部编辑后发现,原有的数组还是会继续被改变。苦恼了很久,直到今天发现当数组内部其中一个model数据改变时,另外几个也改变 的解决办法用到- (id)copyWithZone:(NSZone *)zone
于是也尝试着用该方法进行原数组内部的model进行拷贝,再将拷贝后的model 通过 addObject 的方法付值给新写的数组,问题就完美解决了!
在model的.m方法内重写copy方法 selectArray 是新的数组,dataArray 是原数组 图1 图2