文档章节

关于拷贝的基本认识

0_0Loong
 0_0Loong
发布于 2015/10/18 19:21
字数 300
阅读 19
收藏 0

从复制的层面上讲:

retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。


copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,

         引用计数每次加一。始终返回一个不可变对象。


mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。


 而复制的概念上区别:

浅 复 :在复制操作时,对于被复制的对象的每一层复制都是指针复制。

深 复 :在复制操作时,对于被复制的对象至少有一层复制是对象复制。

完全复制:在复制操作时,对于被复制的对象的每一层复制都是对象复制。


在这里就可以解释之前一个问题:我们在定义NSString为retain类型的类属性后去设置属性值之后我们的计数器不会加一。这里是因为,从某种程度上讲NSString是一个静态的常量在这样进行浅复制是不成立。



© 著作权归作者所有

共有 人打赏支持
0_0Loong
粉丝 8
博文 69
码字总数 64426
作品 0
西安
程序员
私信 提问
深入JavaScript基础之深浅拷贝

最近在学到JavaScript对象的深拷贝和浅拷贝做了一些比较,将实际开发的点和基础点做了些小结,话不多说,开始进入主题吧。 基础认识---基本类型 基础认识---引用类型 浅拷贝的实现-对象&&数组...

楚梦浮生
07/30
0
0
我是电音之王!FLStudio学习路线图

初步认识水果音乐软件 初步认识水果音乐 终结篇 水果音乐的安装 基本面板的认识与控制 编辑菜单基本操作的认识 通道菜单的认识及基本操作 view浏览器的基本操作 控制面板的基本操作 option菜...

棋帅小七
2017/12/01
0
0
NDK开发中这些基本知识你都懂吗

JNIEnv 定义: 相当于一个jni上下文对象。 作用: 通过JNIEnv的指针能够对Java端的代码进行操作: a.创建Java对象. jstring str = (env).NewStringUTF("终端研发部"); jclass jclazz = (env)...

codeGoogle
2017/09/21
0
0
我是搞java的,为了接点私活花费一定的时间学习php和android好吗?

现在基本只会java和一点extjs,我感觉学php和android也许对java的学习也有启发。 认识一个人,他说可以手里经常有大量的私活可以接,但多数是关于微信的页面。 但担心学习其余方向的技术需要...

itwriter
2015/03/28
881
4
关于程序员的几个阶段

每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。 个人常常思考自己的未来,也从自己的思考中总结出了一些东西...

梁荣良
2016/05/22
68
0

没有更多内容

加载失败,请刷新页面

加载更多

搬瓦工DC3机房和DC8机房哪个速度快,应该选哪个?

搬瓦工DC3机房和DC8机房都是搬瓦工CN2,那么这两个机房比较哪个机房速度快?搬瓦工DC3机房和DC8机房应该选择哪个机房?移动用户用DC8机房还是DC3机房?联通用DC3还是DC8快?电信应该选DC3还是...

Alanbrooke
20分钟前
1
0
探秘Runtime - Runtime介绍

该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> https://www.jianshu.com/p/ce97c66027cd Runtime是iOS系统中重要的组成部分,面试也是必问的问题,所以Runtime是一个iOS工...

刘小壮
21分钟前
1
0
图形用户界面和交互输入方法---小结

中国龙-扬科
37分钟前
1
0
当程序员有了中年危机 你会发现你就是个屁

前言 程序员是一个怎样的存在?引用一句鸡汤的名言来说:你以为你用双手改变了世界,实际上是苍老了自己。为什么我今天会抛出这个话题,其实我也是一个懵懂的少年,我也曾经为了成为一名程序...

架构师springboot
48分钟前
13
0
大型网站B2C商城项目实战+MongoDB+Redis+zookeeper+MySQL

本文列出了当今计算机软件开发和应用领域最关键部分,如果你想保证你现在以及未来的几年不失业,那么你最好跟上这些技术的发展。虽然你不必对这十种技术样样精通,但至少应该对它们非常熟悉。...

java知识分子
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部