`
倾城一屁
  • 浏览: 74017 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

retain/copy/assign的含义

    博客分类:
  • iOS
阅读更多
举个例子可能更好理解点
NSString *pt = [[NSString alloc] initWithString:@"abc"];

上面一段代码会执行以下两个动作
1 在堆上分配一段内存用来存储@"abc"  比如:内存地址为:0X1111 内容为 "abc"
2 在栈上分配一段内存用来存储pt  比如:地址为:0Xaaaa 内容自然为0X1111 

下面分别看下assign retain copy

assign的情况:NSString *newPt = [pt assing];  
此时newPt和pt完全相同 地址都是0Xaaaa  内容为0X1111  即newPt只是pt的别名,对任何一个操作就等于对另一个操作。 因此retainCount不需要增加。

retain的情况:NSString *newPt = [pt retain];  
此时newPt的地址不再为0Xaaaa,可能为0Xaabb 但是内容依然为0X1111。 因此newPt 和 pt 都可以管理"abc"所在的内存。因此 retainCount需要增加1 

copy的情况:NSString *newPt = [pt copy];
此时会在堆上重新开辟一段内存存放@"abc" 比如0X1122 内容为@"abc 同时会在栈上为newPt分配空间 比如地址:0Xaacc 内容为0X1122 因此retainCount增加1供newPt来管理0X1122这段内存
分享到:
评论

相关推荐

    @property中的retain,copy,assign区别

    @property中的retain,copy,assign区别

    retain和copy还有assign的区别

    retain和copy还有assign的区别

    ios_assign,retain和copy详解

    详细讲解了ios中常用关键字的使用方法的区别,着重讲解了assign,retain,copy之间的区别

    IOS中(assign,retain,copy,weak,strong)的区别以及nonatomic的含义

    IOS中(assign,retain,copy,weak,strong)的区别以及nonatomic的含义 我们在声明@property 属性时,总是要在括号中写上assign、retain、copy、weak、strong中的一个,很多时候,我们仅仅只是按照习惯去写经常写...

    iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic

    主要介绍了iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic的相关资料,需要的朋友可以参考下

    OC中的@property属性问题

    Retain,copy,assign...

    Objective-C内存管理课件.doc

    Objective-C内存管理课件.docx ,assign,retain,copy

    iOS 面试题

    3. 请问 property 的 作用,assign,copy,retain 的 区别; assign就是基本赋值 copy是重新创建一个oc对象,计数器是1 retain是对计数器+1 4.请写出实现多线程操作涉及的类及 简单 示例; NSThread, ...

    iOS内存管理方面的面试题汇总

    如何检测内存泄漏? 如何解决循环引用?...对 retain,copy,assign,weak,_Unsafe_Unretain 关键字的理解; 深拷贝和浅拷贝的深刻理解; 自动引用计数应遵循的原则; Dealloc 的实现机制; 内存管理方案 ... ... ...

    iPhone开发、ObjectiveC_面试题目

    7、定义属性时,什么情况使用copy,assign,和retain 8、autorelease的对象是在什么时候被release的? 9、这段代码有什么问题,如何修改 10、for (int i = 0; i ; i++) { NSString *string = @”Abc”; ...

    iOS面试题分享

    简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是...readwrite,readonly,assign,retain,copy,nonatomic 、atomic、strong、weak属性的作用

    iOS 对象属性详细介绍

    retain,strong, copy,weak,assign,readonly, readwrite, unsafe_unretained 下面来分别讲讲各自的作用和区别: retain,计数器加1, (增加一个指向内存的指针) 对应release(计数器-1) setter 方法对参数进行 ...

    IOS property属性详细介绍使用注意事项

    retain copy assign weak unsafe_unretained 方法命名 getter = setter = <name> 结论 1、原子性  (1)atomic  原子性,可以理解成就是生成getter、setter方法时,编译器会自动为程序添加同步锁,...

    iOS常见的几个修饰词深入讲解

    主要给大家介绍了关于iOS常见的几个修饰词的相关资料,iOS修饰词包括assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

    leetcode题库-iOS-Interview-Questions:收集整理iOS笔试面试题

    assign copy retain区别 HTTP的数据传输 动态绑定 subclass category protocol extension 区别 单例的实现 performSelector:withObject:方法的作用是什么? 解释一下多态 如何实现深拷贝 http和socket通信的区别,...

    简述iOS属性中的内存管理参数

    一,assign 代表设置时候直接赋值,而不是复制或者保留它。 二,retain. 会在赋值的时候把新值保留。此属性只能用于Object-C对象类型。 三,copy 在赋值时,将新值复制一份,复制工作由copy执行,此属性只对那些实行...

    BlueToolInstall

    Licensee shall include reproductions of the Broadcom copyright notice with each copy of the Software and any Derivative Work, except where such Software is embedded in a manner not readily accessible...

    polycom宝利通视频会议软件3.9 2018

    You are not permitted to lease, rent, distribute, assign, sell or sublicense the SOFTWARE PRODUCT, in whole or in part, or to use the SOFTWARE PRODUCT in a time-sharing, subscription service, service...

Global site tag (gtag.js) - Google Analytics