我知道这个问题被多次询问过,而且我知道它正在调用不属于该类的选择器。
但是,我想知道纠正这些类型错误的最佳方法。我在调试控制台中收到以下错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController length]: unrecognized selector sent to instance 0x76908e0'
我确定,我没有在这个控制器中编写的代码中的任何地方调用长度属性。
我尝试逐行调试它,它在二进制文件中的某处崩溃,我无法确定崩溃应用程序的确切原因。
我还尝试使用NSZombieEnabled
运行该应用程序,但也没有取得任何成功。
有人可以帮我解决这些问题吗?了解原因的最佳方法是什么?
提前致谢。
的 的 ** * ** * ** * 的*** 已解决 ** * ** * ** * ** * ****
我添加了以下UITableViewDelegate方法,但未在此处返回anythign:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
}
导致崩溃。当我刚读完整个资料时,我得到了这个。谢谢大家的支持。
答案 0 :(得分:1)
你在你认为有长度属性的东西上调用了-length,但实际上是你的ViewController类的一个实例。
发布一些代码,因为长度可以通过各种方法和类隐式调用,这里有人可能会发现它。
另外,你应该去Debug>>断点>> CreateExceptionBreakpoint使调试器在任何时候抛出异常时暂停执行。大多数情况下,这将在抛出此异常的调用上停止,如果不是一步或两步或调用堆栈的一个或两个级别。
答案 1 :(得分:0)
检查此控制器中属性的强弱属性。我认为你有任何弱势的财产,它应该是强大的。
当您的应用程序崩溃时检查Debug Navigator,有时您可以看到跟踪,这有助于您
答案 2 :(得分:0)
在-[NSObject doesNotRecognizeSelector:]
中创建一个符号断点,与this answer中一样。