每当我们开开心心的写好一块功能,带点小期盼的按下command+R,一运行...
突然编译界面跳到main.h,是不是想喷一口老血...
遇到崩溃不要着急,不要胡乱改代码,先找到崩溃原因,一般情况下,控制台会把崩溃原因打印出来,举几个栗子:
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
2.点空白处让弹框消失
3.运行,编译界面会跳转到导致崩溃的地方
原来是调用masonry导致的崩溃,这种方法适用很多崩溃场景。
网友评论