Objective-C学习之浅复制和深复制

54 篇文章 51 订阅 ¥9.90 ¥99.00
本文详细介绍了Objective-C中的浅复制和深复制概念,包括C语言中的拷贝、iOS中的拷贝行为,以及自定义类如何实现深拷贝和浅拷贝。在浅复制中,对象的属性和包含的对象不会被复制,而在深复制中,对象及其所有内容都会被复制到新的内存区域。Foundation框架默认提供浅复制,但自定义类可以通过实现NSCopying协议来定制深拷贝行为。
摘要由CSDN通过智能技术生成

对一不可变对象复制,copy指针复制(浅拷贝)mutableCopy就是对象复制(深拷贝)

如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的。

浅复制只复制对象本身,对象里的属性、包含的对象不做复制

深复制复制全部,包括对象的属性和其他对象

Foundation框架支持复制的类,默认是浅复制

在Foundation对象中:

copy是一个不可变的对象时,作用相当于retain

当使用mutableCopy时,不管源对象是否可变,副本是可变的,并且实现真正意义上的copy

当我们使用copy一个可变对象时,副本对象是不可变的。

下面转一篇文章关于C、Objective-C、自定义类的深/浅拷贝比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fswy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值