本文主要是介绍property 的成员属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、assign
范围:对基础数据类型(NSInteger 和 CGFloat) 和 C数据类型(int、float)
使用:简单赋值,不更改索引计数
2、copy(内容拷贝)
范围:对NSString、NSNumber
使用:拷贝对象,释放旧对象,开辟新的内存空间,并将索引计数设为1
深复制:copy的set方法,就是深复制
3、retain(指针拷贝)
范围:对其他NSObject 和 其他子类
使用:release旧值,再retain新值,索引计数+1
浅复制:retain的set方法,就是浅复制
与copy区别:只是将索引计数+1,没有开辟新空间
copy与retain:
Copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString对象,地址为0×1111,内容为@”STR”
Copy到另外一个NSString之后,地址为0×2222,内容相同,新的对象retain为1,旧有对象没有变化
retain到另外一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain是指针拷贝,copy是内容拷贝。
这篇关于property 的成员属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!