如何查找代码中的哪个位置导致以下异常?
2012-08-15 09:24:27.414 TestProject[82870:17303] -[TestObj doIt]: unrecognized selector sent to instance 0x1106f320
答案 0 :(得分:3)
答案 1 :(得分:3)
最佳方法:添加断点以捕获所有异常,这将为您提供获得异常的代码行。从控制台,您将收到与您的问题相同的消息,因此,使用指针地址来打印获得异常的对象。如果对象是垃圾(调试器不打印它),这意味着您正在过度释放对象。如果您启用了僵尸,您将在类名上找到前缀NSZombie__。这也意味着过度发布。如果你获得的类不同于你期望的类,那么你将在某个时刻切换对象并向错误的对象发送消息。
答案 2 :(得分:1)
为抛出异常设置断点。默认情况下,它会在抛出异常时暂停 - 您将看到回溯和值。
如果它是完全随机的(例如不可重复),那么你可以运行启用僵尸的乐器运气好。