黑马程序员技术交流社区

标题: ARC的问题 [打印本页]

作者: 程序猿-2014    时间: 2014-4-22 00:52
标题: ARC的问题
OC中arc的作用是什么?   仅仅是取代了  release和retain么?个人感觉好像没那么简单,ARC和手动管理内存有什么本质的区别么?求大神解惑!
作者: .Drenched    时间: 2014-4-22 05:23
ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的关系,而不用考虑对象的retain和release。

ARC在编译时期添加代码,保证对象可用。概念上说,ARC遵循手动引用计数的规则,替开发者,在编译时期添加合适的代码。

Xcode4.2(Mac OS 10.6、10.7和iOS4和iOS5)支持ARC,弱引用在10.6和iOS4上不支持。
作者: 董月峰    时间: 2014-4-22 06:10
1.ARC是编译器特性【在编译代码的时候,编译器会自动检测】

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

3.ARC特点总结:
    1》不允许调用release,retain,retainCount
    2》允许重写dealloc,但是不允许调用[super dealloc]
    3》@property的参数
        *strong : 成员变量是强指针(适用于OC对象类型)
        *weak : 成员变量是弱指针 (适用于OC对象类型)
        *assign : 适用于非OC对象类型
    4> 以前的retain改成strong,其它一切不变

作者: gmadong@163.com    时间: 2014-4-23 21:43
ARC和MRC区别就是一个是自动加release,retain的一个是手动的加release,retain
在内存管理上没有本质区别 ARC就是编译器帮你加了release,retain而MRC是自己手动加的
作者: gaoxinglei123    时间: 2014-4-24 19:34
ARC就是自动管理内存。把release和retain操作封装起来。方便开发。本质上应该没有什么区别。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2