前序:ARC是自动引用计数,MRC是引用计数。引用计数的原理是跟随OC的出生就存在的。
一、修饰符
1 __strong(默认的,强引用)(相应的属性copy、retain、strong)
2 __weak (弱引用,引用不存在会赋值nil)(相应的属性weak)
3 __unsafe_unretained (弱引用,引用不存在不会赋值nil)(相应的属性assign)
4 __autoreleasing (默认的,添加自动释放)没有
二、三种常见的问题
1 两个对象相互强引用
2 单个对象对自己强引用
3 三个对象A B C 。A对B强引用,C对B弱引用,A取消对B的引用会触发问题。
三、注意问题
1 由于__weak不是默认的,所以如果在属性中设置为weak,引用的实例也是需要用__weak修饰的
2 属性的设置关键字很多,但是copy、retain、strong、weak、assign是修饰他们内存管理相关的关键字。
网友评论