黑马程序员技术交流社区
标题:
retain,assign,copy,strong,weak使用场景
[打印本页]
作者:
dzb5461883
时间:
2015-8-14 08:40
标题:
retain,assign,copy,strong,weak使用场景
在ARC出现之前,用retain,assign,copy,修饰变量。
(1)当变量被设置为retain属性,对该变量进行赋值时先release旧的对象(旧对象引用计数减一),再retain(持有)新对象(新对象引用计数加一)。通常继承自NSObject的类对象属性设置为retain;
(2)当变量被设置为copy属性,对该变量进行赋值时,重新创建一个对象(新内存),复制内容到内存中,新对象的引用计数为1,原对象的引用计数不变。NSString类对象的属性设置为copy。
(3)当变量被设置为assign属性,对变量进行赋值时,两个变量的内存地址完全相同,对任何一个操作就等于对另一个操作。通常基本数据类型设置为assign属性。
总结,retain是浅拷贝即指针拷贝,copy是深拷贝即内容拷贝,assign只是相当于对另一个变量起了一个别名。
在ARC出现时候,出现strong,weak两个新属性
其中strong相当于原来的retain,weak相当于原来的assign
作者:
dzb5461883
时间:
2015-8-14 10:13
新手,请多多指教
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2