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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© suihaixia54 中级黑马   /  2016-1-20 09:54  /  826 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对象销毁

1.当一个对象的引用计数器值为0时,那么它将被销毁,其占用的内存被系统回收;
2.当一个对象被销毁时,系统会自动向对象发送一条dealloc消息;
3.一般会重写dealloc方法,释放相关资源;
4.一旦重写dealloc方法,就必须调用[super dealloc]并且放在最后调用;
5.不要直接调用dealloc方法;
6.一旦对象被回收,坚持使用会发生程序崩溃(野指针错误);

*针对[super dealloc]必须要放在方法dealloc的最后:
原因是:你所创建的每个类都是从父类,根类继承来的,有很多实例变量也会继承过来,这部分变量有时候会在你的程序使用,
它们不会自动释放内存,你需要调用父类的dealloc方法来释放,然而在此之前,你需要先把自己所写类中得变量内存先释放掉,
否则就会造成你本类的内存挤压,造成内存泄露;

僵尸对象:一个对象的引用计数器为0后,该对象就变为僵尸对象;
野指针:指向僵尸对象的指针;
空指针:指向nil的指针;

5 个回复

倒序浏览
学习了~~~
回复 使用道具 举报
总结的很好
回复 使用道具 举报
要记住循环引用的处理情况
回复 使用道具 举报
大赞,加油
回复 使用道具 举报
不错,今天刚刚学这个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马