iOS如何调试崩溃?

iOS如何调试崩溃?,ios,Ios,我的应用程序因不确定的原因崩溃,我最终得到以下日志: MyProj[9442:707]-[NSDecimalNumber length]:发送到实例0x2e6690的无法识别的选择器 能告诉我更多的细节吗?9442:707是什么意思,是行号吗 编辑 在我的代码中,我添加了如下跟踪: NSLog(@"KEYS:%@", myKeys); NSLog(@"KEYS ORDERED:%@", [myKeys sortedArrayUsingSelector:@selector(compare:)]);

我的应用程序因不确定的原因崩溃,我最终得到以下日志:

MyProj[9442:707]-[NSDecimalNumber length]:发送到实例0x2e6690的无法识别的选择器

能告诉我更多的细节吗?9442:707是什么意思,是行号吗

编辑

在我的代码中,我添加了如下跟踪:

NSLog(@"KEYS:%@", myKeys);
NSLog(@"KEYS ORDERED:%@", [myKeys sortedArrayUsingSelector:@selector(compare:)]);
但第二条线崩溃了。我的“长度”错误似乎来自这一行(尽管我在任何地方都没有使用[something length])


iOS调试器有时在描述确切的问题时相当不清楚。 但在你的情况下,这应该是清楚的<代码>[NSDecimalNumber length]无法执行,因为方法长度对其不清楚

参考:


尝试找到使用长度函数的线条,并将其更改为可以工作的线条。如果您的问题中有一段代码,我们可以更精确地说明这一点。

iOS调试器有时在描述确切的问题时相当不清楚。 但在你的情况下,这应该是清楚的<代码>[NSDecimalNumber length]无法执行,因为方法长度对其不清楚

参考:


尝试找到使用长度函数的线条,并将其更改为可以工作的线条。如果您的问题中有一段代码,我们可以更精确地说明这一点。

9442:707是有关该过程的信息。。这对你没有帮助

在代码的某个地方,您正在向NSDecimalNumber发送长度消息

你能在调试器中使崩溃发生吗?如果是这样的话,请在崩溃时检查调用堆栈,它会正确地指出问题所在


如果不是-如果您的代码库不太大,您可以在代码中搜索“长度”,并检查发送长度消息的任何位置,以查看是否发送到了错误类型的对象。

9442:707是有关该过程的信息。。这对你没有帮助

在代码的某个地方,您正在向NSDecimalNumber发送长度消息

你能在调试器中使崩溃发生吗?如果是这样的话,请在崩溃时检查调用堆栈,它会正确地指出问题所在


如果不是-如果您的代码库不是太大,您可以在代码中搜索“长度”,并检查发送长度消息的任何位置,以确定它是否发送到了错误类型的对象。

我成功地隔离了错误,但似乎不是因为显式的[something length]调用。我已经更新了问题并添加了其他日志。我设法隔离了错误,但似乎不是因为显式的[something length]调用。我已经更新了问题并添加了其他日志。我在代码中没有使用“长度”,似乎在排序数组时被链接(我在问题中添加了部分代码)。@Luc:compare:method。将在封面下使用长度函数执行某些操作。你是对的,长度是在compare方法中调用的。我刚刚看到比较的对象不全是NSString,它们之间隐藏着一个NSDecimalNumber。。。我把它改成了一个字符串,它工作得很好。谢谢你的帮助。我在代码中没有使用“长度”,在排序数组时似乎是链接的(我在问题中添加了部分代码)。@Luc:compare:method。将在封面下使用长度函数执行某些操作。你是对的,长度是在compare方法中调用的。我刚刚看到比较的对象不全是NSString,它们之间隐藏着一个NSDecimalNumber。。。我把它改成了一个字符串,它工作得很好。感谢您的帮助。检查:如何在iOS中跟踪和调试崩溃:检查:如何在iOS中跟踪和调试崩溃:
2011-11-11 14:20:18.936 MyProj[9570:707] KEYS:(
  330,
  359,
  362,
  367,
  352,
  351,
  364,
  331,
  350
)

... then crash... with above error