本文转载自http://blog.csdn.net/totogo2010/article/details/8949440 感谢作者!
起因
有不少人在评论发一些崩溃信息,问我程序怎么回事,其实如果你知道了程序崩溃在哪行代码崩溃了,就很容易定位问题了。android开发看崩溃log就能看到具体哪行代码出问题,那在iOS开发怎么快速定位到具体哪行代码崩溃呢。
步骤1
在xcode添加一个通用断点就行了。方法如下:
点击项目导航断点那,如图
步骤2
点击+号:
一步步按上面图完成操作。
再运行程序
自动就断点到这里来了,
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'
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:这个方法只能绝大部分这样的崩溃。有少部分错误是断不到了。