欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

【读书笔记】iOS-属性

程序员文章站 2022-05-10 22:27:38
assign:简单的赋值。 retain:赋值之后,会调用新的retain方法和旧值的release方法。 copy:表示先将值拷贝一份,然后,将这个拷贝赋值给实例变量,这个修饰词只适用于实现了NSCopying协议的类型。 weak:表示这个属性的值将是一个弱引用,引用和被引用之间没有所属关系。如 ......

assign:简单的赋值。

retain:赋值之后,会调用新的retain方法和旧值的release方法。

copy:表示先将值拷贝一份,然后,将这个拷贝赋值给实例变量,这个修饰词只适用于实现了NSCopying协议的类型。

weak:表示这个属性的值将是一个弱引用,引用和被引用之间没有所属关系。如果系统销毁了某个属性所引用的对象,属性的值会自动地变为nil.一般情况下,如果父对象拥有子对象的引用,那么子对象就不应该再持有父对象的引用,而是应该使用偌引用的方式来引用父对象,有点像绕口令。

相反的,强引用类型的属性表示的是引用和被引用者之间具有所属关系,从内存使用的角度来描述就是引用对象被回收之前,被引用的对象不会被回收。

 

nonatomic指定访问器方法是非线程安全的,即多个线程可以同时访问这个属性。默认情况下,访问器方法都是线程安全的,即使在多线程环境中也毫无风除。然而,即使要保证在多线程环境中能正常工作,访问器也不一定必须是线程安全的。而将访问器方法指定为非线程安全的,可以让getter方法直接返回实例变量的值,效率更高,在iPhone应用中特别推荐使用。

 

参考资料:《iOS编程指南》