exc_bad_access(code=1, address=0x789870)野指针错误
2016-03-28 17:52
399 查看
原因:
exc_bad_access(code=1, address=0x789870)野指针错误,主要的原因是,当某个对象被完全释放,也就是retainCount,引用计数为0后。再去通过该对象去调用其它的方法就会出现野指针错误。
解决办法:
首先得定位到哪里出现的这样野指针引用错误,如果是大型的项目代码量一大,找起来是非常痛苦的。
iOS提供了一个环境变量设置来帮忙定位错误位置的信息描述:NSZombieEnabled ,就是当设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie,设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不会向之前那样Crash或者产生一个难以理解的行为,而是放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失, 因此我们就可以找到具体或者大概是哪个对象被错误的释放了。
设置NSZombieEnabled环境变量
Xode菜单 Product ->scheme ->Edit scheme -> Run ->Diagnostics 勾选Enable Zombie Objects
如图:
exc_bad_access(code=1, address=0x789870)野指针错误,主要的原因是,当某个对象被完全释放,也就是retainCount,引用计数为0后。再去通过该对象去调用其它的方法就会出现野指针错误。
解决办法:
首先得定位到哪里出现的这样野指针引用错误,如果是大型的项目代码量一大,找起来是非常痛苦的。
iOS提供了一个环境变量设置来帮忙定位错误位置的信息描述:NSZombieEnabled ,就是当设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie,设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不会向之前那样Crash或者产生一个难以理解的行为,而是放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失, 因此我们就可以找到具体或者大概是哪个对象被错误的释放了。
设置NSZombieEnabled环境变量
Xode菜单 Product ->scheme ->Edit scheme -> Run ->Diagnostics 勾选Enable Zombie Objects
如图:
相关文章推荐
- 发送微信模板消息
- 图片选择器
- Retrofit 2.0 + OkHttp 3.0 配置
- MySQL常用命令
- Android优化Adapter内的Click、LongClick
- jasoncpp在visual studio下的编译和使用
- Android Interface Definition Language (AIDL)
- iOS 设置导航条的主题
- Servlet过滤器和监听器知识总结
- 第一章 引言
- Java中的静态绑定和动态绑定
- 【Bugly干货分享】iOS内存管理:从MRC到ARC实践
- find the nth digit
- 【剑指Offer学习】【面试题40:数组中仅仅出现一次的数字】
- 你应该知道的Linux历史
- 开始使用 UIAlertController 吧
- Intellij IDEA新建一个EJB工程(二)
- css中各种居中的奇技淫巧总结
- 【JQuery】:first和:last过滤选择器
- Android最佳性能实践(一)——合理管理内存