A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如果需要保持一个对象不被销毁,可以使用retain,在使用完对象后需要使用release进行释放;
使用release进行释放对象时,对象并不一定立刻被销毁,只有引用计数变为0时才有系统调用dealloc进行释放;

自动释放池结束时会向对发送autorelease的所有的对象发送release消息,如果池中某个对象引用计数变为0,则系统调用dealloc销毁该对象。
自动释放池结束时对池中对象发送release消息也不一定能够销毁所有的对象,因为某个对象引用计数可能还不为0;
当程序终止时所有的对象都被销毁;
对使用alloc  retain  copy方法的任何对象,以及具有retain和copy的属性的对象释放时,需要dealloc方法使得在对象释放的时候能够释放实例变量

9 个回复

倒序浏览
一句话:谁return,谁release.
回复 使用道具 举报
感谢楼主分享,内存这块一直晕晕的
回复 使用道具 举报
感谢分享,牛人
回复 使用道具 举报
先收下了
回复 使用道具 举报
楼主有了ARC,还需要内存管理吗?什么情况下需要自己管理呢?
回复 使用道具 举报
yi95392 发表于 2015-5-22 21:57
楼主有了ARC,还需要内存管理吗?什么情况下需要自己管理呢?

ARC有缺点:存在释放内存时间不确定性(不知道什么时候系统自己释放内存)和释放内存顺序不确定性(要释放的多个内存对象没有固定的顺序)

对于什么时候需要自己管理这方面我也不是太清楚!等我弄明白了再答复!!
回复 使用道具 举报
灌水来学习
回复 使用道具 举报
autrelease~~~~~~~~~~~~~     
回复 使用道具 举报
前来学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马