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

autorelease方法和ARC基本原理

时间:2015-02-07 00:22:26      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

一.autorelease方法 又叫做半自动释放

1.调用方式--【对象变量  autorelease】他会返回对象本身,并且会将对象放到一个自动释放池(自动释放池也是个对象)

2.方法运行原理:当自动释放池被销毁时,会对池子里面的所有对象做一次release操作

3.@autoreleasepool{}->这个就是自动释放池,要把代码写进大括号里面。

4.autorelease的使用注意:

*自动释放池可以创建无数个

*调用完autorelease方法后,对象计数器不变

*占用内存较大的对象不要随便使用autorelease,因为不能精确控制对象的消失

*在IOS程序运行中,会创建无数个自动释放池,这些池子都是以栈结构存在(先进后出)

*系统自带的方法里面没有包含alloc,new,copy方法,说明返回的对象都是autorelease的

二.ARC基本原理

ARC是编译器的特性。并不是OC语言本身具备这个功能

ARC的判断原则:只要没有强指针指向对象,就会释放对象(也就相当于对对象release一次)。

指针分两种:一种是强指针,默认情况下所有的指针都是强指针。一种是弱指针,weak。它的定义方式是:_ _weak  *XXX.

ARC的特点:

*不允许调用release retain retainCount

*允许重写dealloc 但是不允许调用【super dealloc】

autorelease方法和ARC基本原理

标签:

原文地址:http://www.cnblogs.com/jingdian/p/4278191.html

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