造成unrecognized selector sent to instance的原因很多,对象被提前release、引用的实例的方法不存在了或者这个方法在类中没有实现等等。控制台仅是简单的告诉你出现此种错误,随后一堆堆堆栈相关的地址。
这时想快速定位BUG的话,定制DEBUG断点是一个相比较好的办法,因为更好的我还没想到。
OK,废话少扯,步骤如下:
1.在Xcode的菜单栏中选择Debug->Breakpoints->Create Symbolic Breakpoint点击后,会添加一个断点调试,弹出编辑框
2.在编辑框的Symbol中填写-[NSObject(NSObject) doesNotRecognizeSelector:]此方法签名,对于边看本博文边试验的同学来说,在复制方法签名后想粘贴的时候,发现Xcode中的编辑框不见了,此时右击刚才添加的那个断点,选择Edit Breakpoint即可。
3.运行代码,断点就会停留在导致崩溃的地方。
时间: 2024-09-30 05:10:44