在Xcode调试程序的时候,总是会出现不知道错误在什么地方的问题,一头雾水,现在有一个办法,可以具体定位到错误行的代码,是不是就好了很多呢
具体步骤也很简单:
在xcode添加一个通用的断点(Exception BeakPoint)就ok了,
然后点击左下角的+号,增加一个Exception的端点,
选择第一个 All Exception,
然后就会出现 All Exception断点了,你可以右键设置,
一步步按上面图完成操作。
再运行程序
自动就断点到这里来了,
log信息是:
- 2013-05-20 11:14:19.635 GestureRecognizer[1491:c07] -[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a88df0
- 2013-05-20 11:15:21.148 GestureRecognizer[1491:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a88df0'
这样很简单就能发现程序崩溃是因为value没有 isEqualToString方法。
如果我没加上面这个通用的断点,那程序会直接断点到main函数去。
PS:这个方法只能绝大部分这样的崩溃。有少部分错误是断不到了。