iOS开发-数组的深拷贝浅拷贝注意点
来源:互联网 发布:php高级工程师证书 编辑:程序博客网 时间:2024/05/03 03:29
今天写代码过程中遇到一个头疼的问题:可变数组经过深拷贝之后,变动新数组里面的元素,原来的数组也会跟着变。
做了一下实验,得到如下结论:
当数组元素是自定义类的时候,不管深浅拷贝,数组里面的元素地址是不变的。
DPNTextContent *content1 = [[DPNTextContent alloc] init];content1.content = @"1";DPNTextContent *content2 = [[DPNTextContent alloc] init];content1.content = @"2";DPNTextContent *content3 = [[DPNTextContent alloc] init];content1.content = @"3";NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:content1,content2,content3, nil];NSMutableArray *arr2 = [NSMutableArray arrayWithArray:arr1];DPNTextContent *ccc = [arr2 lastObject];ccc.content = @"999";NSLog(@"%@,%@",arr1,arr2);
这个在编程中得小心了。最后以元素替换的方式达到了目的。
附上一个关于讲解深浅拷贝的文章,特别详尽:https://www.zybuluo.com/MicroCai/note/50592
1 0
- iOS开发-数组的深拷贝浅拷贝注意点
- iOS中深拷贝和浅拷贝的3种理解和1个注意点
- iOS中深拷贝和浅拷贝的3种理解和1个注意点
- iOS开发 深拷贝与浅拷贝
- IOS开发复制的总结(深拷贝浅拷贝区别)
- 数组的拷贝注意项
- IOS数组深拷贝
- iOS伪拷贝, 浅拷贝, 深拷贝
- [ios]深拷贝,浅拷贝
- iOS深拷贝浅拷贝
- 对象拷贝注意点
- ios开发之浅拷贝与深拷贝
- IOS开发之深拷贝与浅拷贝(mutableC…
- IOS开发之深拷贝、浅拷贝、mutableCopy、Copy详解
- IOS/MAC 开发之深拷贝与浅拷贝
- iOS开发——深拷贝与浅拷贝详解
- iOS开发——深拷贝与浅拷贝详解
- (0056)iOS开发之深拷贝与浅拷贝
- Centos7.0安装redis
- 矩阵原地转置,空间复杂度为O(1)(暂时先保存下来)
- hrbust 1748Sort the Array【传递闭包+Floyd】
- maven工程导入指南
- ImageView的背景图片与R.drawable.xx比较
- iOS开发-数组的深拷贝浅拷贝注意点
- the Sum of Cube hd 5053
- hdoj4548美素数
- std::max
- Android高效加载大图、多图解决方案,有效避免程序OOM
- Java泛型四:泛型实现原理之类型擦除
- 员工激励的核心是人的满足感
- muduo : StringPiece
- AngularJS