黑马程序员技术交流社区

标题: 对象销毁与僵尸对象 [打印本页]

作者: suihaixia54    时间: 2016-1-20 09:54
标题: 对象销毁与僵尸对象
对象销毁

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

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

僵尸对象:一个对象的引用计数器为0后,该对象就变为僵尸对象;
野指针:指向僵尸对象的指针;
空指针:指向nil的指针;
作者: 有款不辩    时间: 2016-1-20 11:11
学习了~~~
作者: guyuexing    时间: 2016-1-20 22:57
总结的很好
作者: youngrivers    时间: 2016-1-22 23:45
要记住循环引用的处理情况
作者: 红凉梦    时间: 2016-1-23 11:35
大赞,加油
作者: 13631297627    时间: 2016-1-23 23:12
不错,今天刚刚学这个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2