《Objective-c》-(内存管理之五:ARC-自动引用计数)

 

内存管理之五《ARC-Automatic Reference Counting

1.ARC概念

  • ARC是Automatic Reference Counting---自动引用计数

  • ARC是一种编译器特性,并不是java中得垃圾回收,java中的垃圾回收是运行时特性;

  • ARC的判断准则:只要没有强指针指向对象,就会释放对象

2.ARC的特点

  • 不允许调用releaseretainretainCount

  • 允许重写dealloc方法,但是重写不用再调用父类的dealloc方法 即 [super dealloc]

  • @property的参数;

    • strong :成员变量是强指针,set方法会自动对计数器+1,如果没有了强指针指向某个对象就自动回收该对象(适用于OC对象类型);

      

    • weak  : 成员变量是弱指针适用于OC对象类型);

    • assign适用于非OC对象类型;

  • 以前的retain参数改用strong;

  • 强指针:默认情况下,所有的指针都是强指针   __strong修饰;

  • 弱指针__weak 修饰;

3.循环引用的解决对策

  • 非ARC中

  1. 在两个类的.h文件中用@class XXX;

  2. 在两个类的.m文件中用#import “XXX”

  3. @property中一端用retain另一端用assign

     

  • ARC中

  1. 在两个类的.h文件中用@class XXX;

  2. 在两个类的.m文件中用#import “XXX”

  3. @property中一端用strong另一端用weak

       

 
 
 
 
 
 
posted @ 2015-03-20 00:52  深秋的露水  阅读(183)  评论(0编辑  收藏  举报