iOS大法-崩溃处理
2017-08-25 本文已影响0人
今晚打老虎_9527
每当我们开开心心的写好一块功能,带点小期盼的按下command+R,一运行...
突然编译界面跳到main.h,是不是想喷一口老血...
![](https://img.haomeiwen.com/i3984564/9b7bb12b85ae18f1.png)
遇到崩溃不要着急,不要胡乱改代码,先找到崩溃原因,一般情况下,控制台会把崩溃原因打印出来,举几个栗子:
1.调用了不存在的方法
-[WSMainViewController methodNotExist]: unrecognized selector sent to instance 0x1dd96160
2013-10-23 15:49:52.167 WSCrashSample[5578:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[WSMainViewController methodNotExist]: unrecognized selector sent to instance 0x1dd96160'
2.数组越界
3.没有发送给实例
上面这几种情况,原因都能一下看出来,如果遇到类似图一这种 CFRunLoopError 崩溃,原因不明确,左边线程又看不懂,该怎么办呢?别着急,可以用全局断点 Exception Breakpoint 快速定位到崩溃地方。
1.点击断点列表左下方+号,创建一个Exception Breakpoint
![](https://img.haomeiwen.com/i3984564/5946a07dabb1deec.png)
2.点空白处让弹框消失
![](https://img.haomeiwen.com/i3984564/94d2f92a60822546.png)
3.运行,编译界面会跳转到导致崩溃的地方
![](https://img.haomeiwen.com/i3984564/6d35463fd59fa9ca.png)
原来是调用masonry导致的崩溃,这种方法适用很多崩溃场景。