NSAutoreleasePool 随笔

简介: NSAutoreleasePool是一个存放对象的集合,添加到NSAutoreleasePool的对象能够被自动释放。自动释放其实就是在NSAutoreleasePool被清空或是销毁时向池里所有的对象发送一条release消息。

NSAutoreleasePool是一个存放对象的集合,添加到NSAutoreleasePool的对象能够被自动释放。

自动释放其实就是在NSAutoreleasePool被清空或是销毁时向池里所有的对象发送一条release消息。

对象不会自动入池,只有当对象发送一条autorelease消息时才会被添加到当前的池中。可以想象池在一个栈中,当前池在栈顶,每创建一个新的池,就压入,使用drain或者release时,就弹出。

当有对象是Autorelease的对象,而当前没有NSAutoreleasePool的话,就会提示内存泄漏(Just Leaking)。一般来说,只要不是用new、alloc、copy方法创建一个对象的话,我们就假设该对象的引用计数为1,而且被添加到NSAutoreleasePool中。

如下面代码就会提示内存泄漏:

NSDate *date = [NSDate date];
NSLog(@"%@",[date description]);
return 0;
/*
 objc[3466]: Object 0x1001149c0 of class __NSDate autoreleased 
 with no pool in place 
 - just leaking - break on objc_autoreleaseNoPool() to debug
*/

关于drain和release的问题可以在此处找到说明。在非GC环境下,两者的作用是相同的。否则你没有理由去使用release,给NSAutoreleasePool发送drain会提醒GC处理池中的对象。

目录
相关文章
|
安全 Windows
随笔
一则随笔
随笔
随笔0610
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396384 爱挑的担子不嫌重。
740 0
随笔 - 茶花
梦中的古茶树 开满了茶花 朵朵茂盛 而我 站在茶树下 欣赏着这自然的风光 心中 想起你的温柔 就象这茶花一样 滋润而甜美 祝愿我们的爱情 就象这茶花一样 永远的 甜蜜   想飞的水 ``` 2018.
941 0
随笔收藏
图片发自简书App 图片发自简书App 图片发自简书App 图片发自简书App
753 0
随笔 2016-1-4
有人问我怎么在网上混。。。我也不清楚,我只能这么说:“网上毕竟只是虚拟的,我们有时候用它来挣钱,有时候拿它去消遣,它不可或缺却也不是头等重要。心情好的时候你可以发发技术,无聊至极你可以玩玩游戏拿拿小站。
792 0
随笔 01
  有段时间没有在博客园写点什么了,可能是一直没什么时间花在这个上面吧。   确是想来总结点什么才好。   2015.8 在B公司工作了两个月,也是在那个时候入的园子,现在还能想起来那个时候的情景,也就五六个人的小团队吧,如果能融入他们,可能现在的我博客更新会很“勤奋”吧!   来D公司一月有余,时间很长,工作的时候倒是没有那么多的不开心,也就偶尔加加班什么的,乐得自在,没那么多的约束。
768 0
|
算法
【生活随笔】随笔一
        在暑假的上一阶段,我终于完成了算法导论中有关排序算法和树结构的学习及具体的程序实践。回头想想,收获不小,由于我是学通信的,以后可能很少用得到,但是我觉得我学习到的不是算法本身,而是算法的思想。
1114 0
|
程序员
【生活随笔】决定
    注册csdn已经有一年多了,从来也没有进这个论坛看看,当初也只是因为要下载资料而注册的。现在决定转战到这里,一是因为QQ号前不久被盗,一些资料幸好没丢,于是想来将一些个人的文档、程序保存在这里;二是因为csdn中国最大的程序员论坛,想向一些大牛请教请教,毕竟QQ空间的技术大牛并不多,也极少有人会将技术贴发在QQ空间。
971 0