一.autorelease方法 又叫做半自动释放
1.调用方式--【对象变量 autorelease】他会返回对象本身,并且会将对象放到一个自动释放池(自动释放池也是个对象)
2.方法运行原理:当自动释放池被销毁时,会对池子里面的所有对象做一次release操作
[email protected]{}->这个就是自动释放池,要把代码写进大括号里面。
4.autorelease的使用注意:
*自动释放池可以创建无数个
*调用完autorelease方法后,对象计数器不变
*占用内存较大的对象不要随便使用autorelease,因为不能精确控制对象的消失
*在IOS程序运行中,会创建无数个自动释放池,这些池子都是以栈结构存在(先进后出)
*系统自带的方法里面没有包含alloc,new,copy方法,说明返回的对象都是autorelease的
二.ARC基本原理
ARC是编译器的特性。并不是OC语言本身具备这个功能
ARC的判断原则:只要没有强指针指向对象,就会释放对象(也就相当于对对象release一次)。
指针分两种:一种是强指针,默认情况下所有的指针都是强指针。一种是弱指针,weak。它的定义方式是:_ _weak *XXX.
ARC的特点:
*不允许调用release retain retainCount
*允许重写dealloc 但是不允许调用【super dealloc】
时间: 2024-12-31 05:07:11