今天在网上看到一个DEBUG的方法,可能以后用的上,这里做下记录。如果想这理解这种调试方法可以参考《Effective Objective-C 2.0》第二章的讲解的对象、消息、运行期,会有帮助。
开发中常见的一类崩溃错误是遇到:unrecognized selector sent to instance 0xaxxxx…而backtrace又无法明确说明错误在哪行代码,如何快速定位BUG呢?
有时读代码一下很难找到是哪个instance出的问题,这时定制有效的DEBUG断点是最好的办法,方法如下:
在Debug菜单中选择 Breakpoints -> Create Symbolic Breakpoint…
在Symbol中填写如下方法签名:
-[NSObject(NSObject) doesNotRecognizeSelector:]
然后再运行复现错误时断点会停在真正导致崩溃的地方。