码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员----内存管理之五《ARC-自动引用计数》

时间:2015-03-20 01:17:33      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

内存管理之五《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

        技术分享

 
 
 

黑马程序员----内存管理之五《ARC-自动引用计数》

标签:

原文地址:http://www.cnblogs.com/unique-ios/p/4351526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!