崩溃 [XXXX respondsToSelector:]: message sent to deallocated instance 0x7fe2d3e404f0

来源:互联网 发布:中国云计算领军人物 编辑:程序博客网 时间:2024/06/06 06:44

模拟器运行时崩溃,并打印出错误信息

[XXXX respondsToSelector:]: message sent to deallocated instance 0x7fe2d3e404f0

错误信息

如果没有打印出错误信息的话,而是堆栈信息,这时可以进行相关的设置。
1、Xcode-菜单栏-Product-Scheme-Edit scheme-Run Debug-Diagnostics
2、选择:Zombie Objects、Malloc Stack
设置操作

遇到这种崩溃时,大概知道是向已经释放的对象发送消息。但具体的问题是在哪一段代码造成的,应该如何解决呢?
解决方法:使用命令malloc_history PID 崩溃地址查找崩溃发生的代码,再修改过来。

具体做法是:
1、Xcode错误信息已经告诉我们发生错误时的崩溃地址;
2、通过活动监视器查找当前模拟器运行的APP对应的进程ID,即PID;
3、通过终端命令malloc_history PID 崩溃地址查找崩溃代码;

查找进程PID

终端执行命令

代码分析

注意:最后的代码就已经指出发生崩溃的代码。但是,需要不断进行深挖该代码执行时所涉及到的其他代码。
如:我在排查时,提示的是loadDataGoods:中的** setUI 方法出问题,实际上却是**setUI方法中调用了其他方法造成的,即挖了两层才找到根源。

阅读全文
0 0
原创粉丝点击