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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步往上爬 中级黑马   /  2016-1-14 00:40  /  905 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

野指针:对象被回收,但是指向该对象的指针还存在,指针依然能指向该对象回收之前的地址但是对象不存在,所以被称之为野指针,指针指向该空间时 不知道能指向什么对象 所以也称之为僵尸对象
检查野指针(僵尸对象)的方法:设置僵尸对象检查  但影响开发效率
内存泄露:就是引用对象的局部变量已经被释放,但是对象在堆空间没有释放   简单的说就是指针没有了 但是对象还存在,所以被称之为僵尸对象
内存泄露产生的原因:
1. 代码中retain和release的次数不一致;
2. 误将对象设置为nil
3. 在函数中,误用retain
防止野指针或者僵尸对象的方法:释放完对象时,将指针赋值为空 给指针赋值为空时用NULL,也可以给对象赋值为空,用nil(给类对象赋值为空用Nil)
怎样知道对象是否已经被释放???
方法:重写dealloc方法




2 个回复

倒序浏览
2333333333333333333333333333333333333333333
回复 使用道具 举报
野指针就是没有存储任何内存地址的指针。
空指针:就是被符值为0的指针。
抓住这两点,就很重要了。野指针不能被发送消息,而空指针可以。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马