autorelease 什么时候释放

转载 2016年06月02日 09:57:55
在Iphone项目中,大家会看到一个默认的Autorelease pool,程序开始时创建,程序退出时销毁,按照对Autorelease的理解,岂不是所有autorelease pool里的对象在程序退出时才release, 这样跟内存泄露有什么区别?

答案是,对于每一个Runloop, 系统会隐式创建一个Autorelease pool,这样所有的release pool会构成一个象CallStack一样的一个栈式结构,在每一个Runloop结束时,当前栈顶的Autorelease pool会被销毁,这样这个pool里的每个Object会被release。

那什么是一个Runloop呢? 一个UI事件,Timer call, delegate call, 都会是一个新的Runloop。

相关文章推荐

runloop 与autorelase对象、Autorelease Pool 在什么时候释放

转载自:http://blog.csdn.net/leikezhu1981/article/details/51246684iOS的运行时是由一个一个runloop组成的,每个runloop都会执行下...
  • wxs0124
  • wxs0124
  • 2016年12月04日 11:20
  • 266

返回一个临时变量的右值引用,那么临时对象什么时候释放?

最近在研究右值引用的时候碰到这个问题,还没有解决,将问题贴在这里,待更新: const int* printAddress(const int & v) { cout ...

java多线程什么时候释放锁—wait()、notify()

原文地址:http://www.cnblogs.com/hy928302776/p/3255641.html     由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线...

ajax与jq什么时候使用

  • 2017年10月19日 14:57
  • 838B
  • 下载

什么时候使用Looper.prepare()

文章转自 当你的线程想拥有自己的MessageQueue的时候先Looper.prepare(),然后Looper.loop(); 参照源码: [java] ...

dl,dt,dd在什么时候适合使用呢

  • 2012年05月30日 15:38
  • 353B
  • 下载

什么时候学习编程都不晚

  • 2012年06月11日 10:50
  • 346KB
  • 下载

APP测试包括什么内容啊,什么时候开始 ?

一、 测试流程图 二、每日工作 1、发现BUG时,要准确、详实的描述bug产生的过程、BUG的现象,协助开发工程师定位并跟踪问题,直到BUG解决 2、每天跟踪开发人员新需求的开发进度,作...

重定向与请求转发的区别及什么时候使用

重定向与请求转发的区别 一 转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程: 转发过程:客户浏览器发送http请求——》web服务器接受此请求——》调用内部...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:autorelease 什么时候释放
举报原因:
原因补充:

(最多只允许输入30个字)