属性声明中属性与对象所有权的关系

下表是属性、所有权和关键字间的关系:

属性 关键字 所有权
strong _strong
weak _weak
copy _strong
assign _unsafe_unretained
retain _strong
unsafe_unretained _unsafe_unretained

从上表我们可以总结如下:
1、strong,copy,retain都是对象的持有者,copy是拷贝对象的持有者。
2、assign针对基本类型属性声明,不改变属性的引用计数。
3、copy针对字符串类型属性声明
4、strong针对对象属性声明
5、delegate、outlet属性声明使用weak,delegate可以防止循环引用。
6、weak不会改变对象的引用计数,不是对象的持有者。当对象销毁后,weak类型属性自动赋值为nil。
7、关键字用在声明变量的时候,说明变量对对象的所有权。

你可能感兴趣的:(属性声明中属性与对象所有权的关系)