今天做一个购物车时用到了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];
}
- 通过本地保存然后获取数据解压
NSArray *arr4 = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:arr]];
网友评论