黑马程序员技术交流社区
标题:
关于手动计数引用和自动释放池总结
[打印本页]
作者:
gclforios
时间:
2015-5-21 23:21
标题:
关于手动计数引用和自动释放池总结
如果需要保持一个对象不被销毁,可以使用retain,在使用完对象后需要使用release进行释放;
使用release进行释放对象时,对象并不一定立刻被销毁,只有引用计数变为0时才有系统调用dealloc进行释放;
自动释放池结束时会向对发送autorelease的所有的对象发送release消息,如果池中某个对象引用计数变为0,则系统调用dealloc销毁该对象。
自动释放池结束时对池中对象发送release消息也不一定能够销毁所有的对象,因为某个对象引用计数可能还不为0;
当程序终止时所有的对象都被销毁;
对使用alloc retain copy方法的任何对象,以及具有retain和copy的属性的对象释放时,需要dealloc方法使得在对象释放的时候能够释放实例变量
作者:
wangguanyang
时间:
2015-5-21 23:38
一句话:谁return,谁release.
作者:
hehelaicaicai
时间:
2015-5-22 09:20
感谢楼主分享,内存这块一直晕晕的
作者:
Emma
时间:
2015-5-22 14:36
感谢分享,牛人
作者:
su199325
时间:
2015-5-22 21:27
先收下了
作者:
yi95392
时间:
2015-5-22 21:57
楼主有了ARC,还需要内存管理吗?什么情况下需要自己管理呢?
作者:
gclforios
时间:
2015-5-23 22:50
yi95392 发表于 2015-5-22 21:57
楼主有了ARC,还需要内存管理吗?什么情况下需要自己管理呢?
ARC有缺点:存在释放内存时间不确定性(不知道什么时候系统自己释放内存)和释放内存顺序不确定性(要释放的多个内存对象没有固定的顺序)
对于什么时候需要自己管理这方面我也不是太清楚!等我弄明白了再答复!!
作者:
nsswift
时间:
2015-5-24 08:47
灌水来学习
作者:
何志祥
时间:
2015-5-26 12:09
autrelease~~~~~~~~~~~~~
作者:
追随自然
时间:
2015-5-26 23:31
前来学习!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2