object-C 之 自动释放池(autorelease pool)

自动释放池是一种内存自动回收机制,一般可以将一些临时变量添加到自动释放池中,统一回收释放

当自动释放池销毁时,池里面的所有对象都会调用一次release方法

oc对象只需要发送一条autorelease消息,就会把这个对象添加到最近的自动释放池中

autorelease实际上是把release的调用延迟了,对于每一次autorelease ,系统只是把该对象放入当前的autorelease pool中,当该pool被释放时,该pool中所有的对象都会调用release


autorelease 不改变计数器。

 Student *stu=[[[Student alloc] init] autorelease]---不用考虑何时释放

静态方法调用,不用释放内存,是自动释放的



不要把大量循环操作放在一个autorelease池中,会造成内存峰值的上升。

避免对大内存使用该方法。



用静态方法去简化主函数的定义

在.h文件中

+(id)student; //类名第一个字母大写,这个用小写

在.m 文件中

+(id)student{

    Student *student=[[[Student alloc] init] autorelease];

    return student;

}


main函数中直接调用即可

 Student *stu=[Student student];





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值