文档章节

关于拷贝的基本认识

0_0Loong
 0_0Loong
发布于 2015/10/18 19:21
字数 300
阅读 17
收藏 0
点赞 0
评论 0

从复制的层面上讲:

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


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

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


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


 而复制的概念上区别:

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

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

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


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



© 著作权归作者所有

共有 人打赏支持
0_0Loong
粉丝 8
博文 59
码字总数 65066
作品 0
西安
程序员
iOS | mutableCopy的实际运用

这是一篇发现问题和解决问题的笔记。 遇到的问题 每次上拉加载更多完成执行后,banner都会增加两页。 banner是一个cell,它的方法代码是这样的: 这里首尾添加两个元素是为了做轮播效果。 问...

无夜之星辰 ⋅ 05/08 ⋅ 0

关于不采用session问题,应该还可以选择其他什么技术解决

记得12月14日参加成都的CF大会,了解些云平台的内容。有个初步的认识,还见到红薯,但并没赶上去打招呼,觉得等级太低。尤其上会上红薯有说过关于用户信息可以采用session技术,事后有留言问...

四川西瓜 ⋅ 2013/12/23 ⋅ 6

NDK开发中这些基本知识你都懂吗

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

codeGoogle ⋅ 2017/09/21 ⋅ 0

WCF技术剖析之十七:消息(Message)详解(中篇)

[爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道《天天山海经》为此录制的节目视频(苏州话)]]在上篇中大体上围绕着Message的两个话题进行讲述:消息版本(Message V...

长平狐 ⋅ 2012/09/04 ⋅ 0

我是电音之王!FLStudio学习路线图

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

棋帅小七 ⋅ 2017/12/01 ⋅ 0

java 深拷贝和浅拷贝

import java.util.*; public class CloneTest{public static void main(String[] args){try{Employee original=new Employee("John q,public",50000);original.setHireDay(2000,1,1);Employe......

敲代码猥琐男 ⋅ 2012/10/31 ⋅ 2

按值传递与按引用传递

讨论这个问题,我们首先应该明确一点: 什么是值传递?什么是引用传递? 值传递:传递过程中,将变量的值拷贝一个副本,用这个副本值来对新变量完成初始化; 传递结果:两个变量的值相同,但...

玄影镜心 ⋅ 2015/08/01 ⋅ 0

Javascript对象的深浅拷贝

开门见山,有人叫对象的复制为深复制浅复制,也有人叫深拷贝浅拷贝。 其实都是copy。 深拷贝(递归复制,复制所有层级,独立副本,一个完全和原来对象属性无关的副本) 返回对象:一个。 传入对...

趁你还年轻233 ⋅ 04/11 ⋅ 0

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

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

itwriter ⋅ 2015/03/28 ⋅ 4

Nodejs和NPM初步认识

一、Nodejs 搭建 关于 Windows下的安装方法见 Windows下安装nodejs及环境配置 Nodejs的网络学习教程 见nodejs和npm使用教程 二、NPM NPM基础 NPM的全称是Node Package Manager,是一个NodeJ...

dhb_oschina ⋅ 2016/04/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 9分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

楠木楠 ⋅ 21分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 50分钟前 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 50分钟前 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部