python获取ios手机内存_IOS OBjective-C 内存概念 (3、自动释放池和ARC)

一、自动释放池的基本概念

cocoa中有一个自动释放池(Autorelease pool)的概念,顾名思义,它是可以存放一些实体的集合。在这个自动释放池中的对象,是能够被自动释放的。NSObject类提供了一个autorelease消息,当我们向一个对象发送autorelease消息时,这个对象就被放入了自动释放池。

创建自动释放池:

@autoreleasepool {

//入池对象 5.0之后的写法

}

NSAutoreleasepool *pool = [[NSAutorelease alloc] init];

//入池对象 5.0之前的写法

[pool release];

自动释放池的销毁时间:

当我们将一个对象发送了autorelease消息时,当自动释放池销毁时,会对池中的每个对象发送一条release消息,以此释放他们。

二、ARC技术的基本概念

ARC自动引用技术(automatic reference counting),当你在编译程序时提供自动管理内存的功能。它会为自动加入内存的控制代码,控制对象的生命周期。如此一来,大大简化内存的管理。注意版本的支持是在IOS4(不支持弱引用),IOS5以后。

垃圾回收机制的基本概念

与Java、.net语言相同object-c2.0以后,提供了垃圾回收机制。但在IOS移动设备终端中,并不支持垃圾回收机制(取决于终端设备的性能)。因此,iPhone并不能对内存进行自动垃圾回收处理(中间模式autorelease)。我们需要注意垃圾回收机制并不是ARC。ARC也需要管理内存,只不过隐式的管理内存,编译器会在适当的地方自动插入retain、release和autorelease消息。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值