1.assign:直接赋值,和引用计数无关,用来声明简单数据类型的属性,如int
2.retain:对旧对象进行释放,并强引用新的对象,使其引用计数加1,用在MRC中
3.strong:对新对象进行强引用,释放旧对象,使其引用计数加1,作用与retain相似,用在ARC中
4.copy:在实现setter方法时,采用copy函数,会生成新的对象被自己持有
5.weak:弱引用,不对所赋值的对象进行持有,但是是安全的,当对象不可用时,会被置为nil,用在ARC中。
6.unsafe_unretained 弱引用,和weak不同,如果引用的对象不可用,则当前指针置为nil,会产生野指针。
网友评论