我该如何去了解我的代码在哪里导致以下异常?如何找到Objective-C中无法识别的选择器异常的位置?
2012-08-15 09:24:27.414 TestProject[82870:17303] -[TestObj doIt]: unrecognized selector sent to instance 0x1106f320
我该如何去了解我的代码在哪里导致以下异常?如何找到Objective-C中无法识别的选择器异常的位置?
2012-08-15 09:24:27.414 TestProject[82870:17303] -[TestObj doIt]: unrecognized selector sent to instance 0x1106f320
最好的方法:添加一个捕获所有异常的断点,这将为您提供获取异常的代码行。在控制台中,您将得到与您的问题相同的消息,因此请使用指针地址打印出现异常的对象。如果对象是垃圾(调试器不会打印它),那意味着您正在过度释放对象。如果你有僵尸启用,你会发现类名前缀NSZombie__。这也意味着过度销售。如果您获得的课程不同于您期望的课程,则您将在某个时间切换对象并向错误的对象发送消息。
这并没有解决我的问题,但我很欣赏详细的解释,这可以在未来类似的问题派上用场。 – Boon 2012-08-20 16:36:46
不幸的是我相信现在有办法以一种简单的方式做到这一点,您将需要调试并搜索它。 – ggrana 2012-08-15 13:33:08