我的应用因特定原因而崩溃,我最终得到了这个日志:
MyProj [9442:707] - [NSDecimalNumber length]:无法识别的选择器发送到实例0x2e6690
我可以提供更多详情吗? 9442:707是什么意思,它是一个行号吗?
修改
在我的代码中,我添加了以下跟踪:
NSLog(@"KEYS:%@", myKeys);
NSLog(@"KEYS ORDERED:%@", [myKeys sortedArrayUsingSelector:@selector(compare:)]);
但是第二行崩溃了。我所看到的“长度”错误似乎来自这一行(我不会在任何地方使用[长度])。
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
答案 0 :(得分:2)
有时,iOS调试器在描述确切问题时并不清楚。
但在你的情况下,它应该是清楚的。 [NSDecimalNumber length]
无法执行,因为方法的长度我们不清楚。
尝试找到使用长度函数的行,并将其更改为有效的行。在你的问题中有一段代码,我们可以更加准确。
答案 1 :(得分:2)
9442:707是关于这个过程的信息..它不会帮助你。
在代码中的某处,您将长度消息发送到NSDecimalNumber。
你能在调试器中发生崩溃吗?如果是这样,请在崩溃时检查调用堆栈,它应指出您正确的问题。
如果没有 - 如果您的代码库不是太大,您可以在代码中搜索“length”并检查您发送长度消息的任何位置,看它是否可以将其发送到错误类型的对象。 / p>