文档章节

copy & mutableCopy

马尔代夫的沙滩
 马尔代夫的沙滩
发布于 2016/02/01 20:45
字数 203
阅读 6
收藏 0

不可变对象执行不可变拷贝(copy)就是浅拷贝

如果执行拷贝时 只要有可变的无论是可变对象还是可变拷贝(mutableCopy)就是深拷贝

只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!

copy 创建的是不可变副本(NSString , NSArray, NSDictionary)

mutableCopy 创建的是可变副本 (NSMutableString, NSMutableArray, NSMutableDictionary)

shallow copy 浅拷贝(指针拷贝):相当于做了一次retain操作 引用计数器加1 没有产生新的对象  源对象和副本对象是同一个对象!

deep copy 深拷贝(内容拷贝):源对象和副本对象是两个不同的对象,源对象的计数器不变,副本对象计数器加1(产生了一个新的对象)

          


© 著作权归作者所有

共有 人打赏支持
马尔代夫的沙滩
粉丝 11
博文 53
码字总数 20296
作品 0
海淀
程序员
copy与mutableCopy

一、深拷贝和浅拷贝 深拷贝:对象拷贝 - 直接拷贝内容。 浅拷贝:指针拷贝 - 将指针中的地址值拷贝一份。 二、对于 Copy 与 mutableCopy 的实践 思路:我用四个方案来验证 Copy 与 mutableC...

JlongTian
2016/01/05
24
0
IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解

阅读本文之前首先了解copy与retain的区别,如果有不正确的地方望大家多多指教: copy与retain的区别: copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。Copy属性表示两个对象内...

木木情深
2014/02/19
0
0
为什么copy不可以修饰可变数组

总结: 1:对于不可变对象,copy都是浅复制,即指针复制。mutableCopy 都是Alloc一个新对象返回。 2:对于可变对象,copy和mutableCopy都是Alloc新对象返回。 3:不论是可变还是不可变对象,...

Ethan-GOGO
2016/10/19
8
0
Objective-C浅拷贝和深拷贝

浅拷贝 浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。如: char str = (char)malloc(100); char* str2 = str; 浅拷贝只是对对象的简单拷贝,让几个对象共用一片内...

大喵哥
2014/09/20
0
0
iOS开发之深复制和浅复制

非盈利无广告开发者专用网址导航:www.dev666.com 1、概述 对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象...

feng_blog
2016/02/24
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部