三,自动释放池autorelease的介绍:
1,自动释放池是程序在运行期间,创建的一些管理对象的池子.这些池子是一种特殊的栈结构.
2,自动释放池,是如何管理对象内存的?
在自动释放池自身释放的时候,会对池子中的每个对象发送一次release消息;注意,对每个对象只发送一次release消息;
3,如何创建一个自动释放池?
@autoreleasepool {
}
4,如何将一个对象加入到池子中?
在池子的代码块中,调用对象的autorelease方法;就可以将这个对象加入到这个池子中.
例如:
Person *p = [Person new];
@autoreleasepool {
[p autorelease]; //加入自动释放池,
}
5,autorelease的使用注意:
1),必须在自动释放池的代码块中调用autorelease方法,对象才会加入池子中;
2),尽量避免对大内存使用该方法,因为这种是延迟释放机制;
3),不要把大量循环操作放到同一个 @autoreleasepool 之间,这样会造成内存峰值的上升;
4),不要对同一个对象连续调用多次autorelease方法;
5),autorelease和release只能使用一个;
|
|