Ios 此方法调用什么:[NSPathStore2 setDelegate:]

Ios 此方法调用什么:[NSPathStore2 setDelegate:],ios,debugging,abort,Ios,Debugging,Abort,我在非常有限的情况下被中止,我试图找出是什么陈述或陈述导致了它。控制台显示: 由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:”-[NSPathStore2 setDelegate:: 已将无法识别的选择器发送到实例0x1d50dcb0' NSPathStore2没有出现在我的代码中的任何地方,因此我正在使用的某个框架必须调用它。实例地址没有出现在其他任何地方,因此我无法说出它是什么 我尝试使用断点来捕捉中止发生的时间,但是它不再发生了。所以可能是时

我在非常有限的情况下被中止,我试图找出是什么陈述或陈述导致了它。控制台显示:

由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:”-[NSPathStore2 setDelegate:: 已将无法识别的选择器发送到实例0x1d50dcb0'

NSPathStore2没有出现在我的代码中的任何地方,因此我正在使用的某个框架必须调用它。实例地址没有出现在其他任何地方,因此我无法说出它是什么

我尝试使用断点来捕捉中止发生的时间,但是它不再发生了。所以可能是时间问题。我在其他帖子中读到,NSPathStore2是NSString的一部分,所以我尝试将print语句放在各种字符串语句周围,但没有帮助。在developer.apple.com上搜索NSPathStore2时未找到任何内容


我认为中止发生在init方法期间,但该方法很长,并且在完成之前调用其他长方法。而且,只有在运行了5分钟的操作序列之后,并且只有在从Xcode重新安装之后,才会发生这种情况。如果我再次运行应用程序,它不会中止。因此,试图找到它的来源是非常耗时的。

这是一个非常常见的症状,即您在某个地方仍在使用解除分配的对象。选中调试方案中的“启用僵尸对象”,并查找在解除分配的对象上调用方法的位置。

这是Xcode 4.5的情况,在iOS 5.1.1的iPhone 4上进行测试。我很确定这个应用程序有足够的内存。你是否设置了任何你不确定的委托?通常,当你对对象的类做出错误的假设时,会出现无法识别的选择器,所以记录字符串方法不会有帮助。您应该查看设置委托的任何地方,并在mkral和ughoavgfhw上记录您调用的对象的类:您的注释引导我找到了答案。我正在使用accelerator.delegate=。。。其中accelerator是一个ivar,在很长一段时间之前创建,没有保留。在该声明出现时,它已经超出了范围。如果你想重写你的评论作为回答,我可以检查一下。我保留了加速器,中止就消失了(至少在两次测试中没有发生。我祈祷着。)我不认为启用僵尸会发现它。我已经想到了僵尸,但僵尸通常会导致“执行错误访问”,而这是一个中止。但是谢谢你的回复。你的想法很接近。请告诉我们是什么解决了你的问题,以便下次我们可以参考