ARC下的内存管理

前序: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是修饰他们内存管理相关的关键字。

你可能感兴趣的:(ARC下的内存管理)