我在非常有限的情况下中止操作,并且试图找出导致它的一个或多个语句。控制台说:


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


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

我尝试使用断点来捕获中止发生的时间,但随后不再发生。因此,这可能是一个时间问题。我在其他文章中读到NSPathStore2是NSString的一部分,因此我尝试将print语句放在各种字符串语句周围,但这没有帮助。在developer.apple.com上搜索NSPathStore2找不到任何东西。

我认为中止发生在init方法期间,但是该方法很长,在完成之前它会调用其他长方法。而且,它仅在经过5分钟的操作序列后才发生,并且仅在从Xcode重新安装后才发生。如果我第二次运行该应用程序,它不会终止。因此,尝试查找其来源非常耗时。

最佳答案

这是一个非常常见的症​​状,您有一个已释放对象仍在某处使用。在调试方案中选中“启用僵尸对象”,然后查找要在释放对象上调用方法的位置。

关于ios - 此方法调用什么:[NSPathStore2 setDelegate:],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12829661/

10-12 03:36