快速轻松地调试发送到实例的无法识别的选择器

这件事发生在我们所有人身上; 当所有突然发生的事情突然停滞不前时,我们欣喜地沿着开发道路前进,构建和测试我们的应用程序,控制台告诉我们以下信息:

– [VETAppDelegate doThatThingYouDo]:无法识别的选择器已发送到实例0xa275230

查看Xcode回溯似乎也无济于事,因为它很可能看起来像这样:

此时,您将开始遍历代码,以查找谁发送了-doThatThingYouDo消息。 您可能会立即找到答案,事情可能全都是笨拙的事情,或者您可能要花一个小时来弄清楚呼叫到底是从哪里来的。

好消息是有更好的方法。 您需要做的就是跳至Breakpoint Navigator,单击底部的+按钮,然后选择Add Symbolic Breakpoint…。

符号字段中输入以下符号:

-[NSObject(NSObject) doesNotRecognizeSelector:] 

现在,当程序中任何对象的任何实例发送了一条消息时,如果消息没有响应,您将看到一个回溯,可以直接转到发送该消息的位置。