美文网首页
数组拷贝问题

数组拷贝问题

作者: 跃文 | 来源:发表于2018-09-14 11:20 被阅读5次

今天做一个购物车时用到了mutableCopy,发现发mutableCopy虽然对外层数组进行了拷贝,但是内层对象并没有拷贝
(后续补充示意,也可以自己建个数组,添加对象打印地址查看,在对象里在加一个数组(数组里添加另一类对象))

想要实现真正的深拷贝有两种方法
1.遍历法:这个需要知道具体数据结构可能效率比第二种会高
NSMutableArray * buyArray = [[NSMutableArray alloc] initWithArray:self.dataArray copyItems:YES];

for (MyObject *object in buyArray) {
    
    object.subArray = [[NSMutableArray alloc] initWithArray:object.subArray copyItems:YES];
}
  1. 通过本地保存然后获取数据解压
    NSArray *arr4 = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:arr]];

相关文章

  • 数组拷贝问题

    今天做一个购物车时用到了mutableCopy,发现发mutableCopy虽然对外层数组进行了拷贝,但是内层对象...

  • 关于几个拷贝的问题

    数组浅拷贝 数组深拷贝 复合数组深拷贝

  • 浅拷贝与深拷贝

    /*浅拷贝:拷贝地址*/ /*深拷贝:拷贝对象*/ 用Strong修饰不可变数组:浅拷贝 用Copy修饰不可变数组...

  • 11_聊一聊js中实现数组拷贝的常用方法

    一、数组赋值 1、要点 用数组直接赋值的方式实现数组的拷贝,改变拷贝后的数组的元素,被拷贝的数组的元素也会发生改变...

  • lodash中常用的方法

    lodash会拷贝一份新数组,不会对之前的数组进行影响 数据的基础处理 浅拷贝&&深拷贝 数组的分割,将数组(ar...

  • Javascript深拷贝

    什么是深拷贝 创建一个新的对象或数组时,将原对象/数组的“值”拷贝,而不是“引用”。 深拷贝 数组拷贝不存在多层嵌...

  • javascript 杂记

    数组杂记 1)数组的判断,使用Array.isArray() 2)一维数组的深拷贝 3)多维数组的深拷贝 4)数组...

  • 关于OC中数组的深、浅拷贝的小总结

    简而言之:数组的深拷贝,仅仅只是拷贝数组的内容,数组内元素的地址不会变,如果想要数组内的对象元素也深拷贝,则数组内...

  • 关于 CopyOnWriteArrayList 的一个简单优化

    一、优化动机 COW 简介:增删改都会加锁并拷贝工作数组,在拷贝数组上做完增删改操作后,会把拷贝数组切换为工作数组...

  • Android Gradle脚本

    定义变量 定义字典 定义数组 打印 遍历数组拷贝文件+重命名 拷贝文件夹 拷贝+修改文件内容

网友评论

      本文标题:数组拷贝问题

      本文链接:https://www.haomeiwen.com/subject/entogftx.html