exc_bad_access(code=1, address=0x789870)野指针错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了exc_bad_access(code=1, address=0x789870)野指针错误相关的知识,希望对你有一定的参考价值。

原因:

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)野指针错误的主要内容,如果未能解决你的问题,请参考以下文章

线程 1:EXC_BAD_ACCESS (code=1, address=0x20) 当 subView

如何修复线程 1:EXC_BAD_ACCESS (code=1, address=0x58) xcode

我的动态数组有问题 - 线程 1:EXC_BAD_ACCESS (code=1, address=0x0)

exc_bad_access(code=1, address=0x789870)野指针错误

CoreData EXC_BAD_ACCESS (code=1, address=0x0) 访问空属性时

Swift 在访问 NSManagedObject 的属性时给出错误线程 1:EXC_BAD_ACCESS(code=1, address=0x0)