NSRangeException问题

时间:2010-03-21 17:45:01

标签: iphone objective-c xcode core-data

我正在编写一个基于核心数据的iPhone应用程序,我是Objective-C的新手。

我有一个错误,我真的很难指出。 iPhone模拟器不断崩溃,出现以下错误消息:

  

2010-03-21 17:37:40.583患者[3689:207] *由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [NSCFArray insertObject:atIndex:]: index(1)超出界限(1)'   2010-03-21 17:37:40.585患者[3689:207]堆栈:(       31007835,       2516698377,       31091771,       31091610,       601273,       197333,       3194546,       3141378,       25020,       29768673,       214570,       30740485,       204512,       29114749,       29505379,       29001194,       29252410,       29190487,       30794322,       30791263,       30788680,       39097877,       39098074,       2883503,       9912,       9766   )

当我按下textField上的return时会发生此错误。按下返回键时会发生的情况是实体上的属性已更新。

我不知道什么数组超出范围,因为我在代码中没有使用任何数组!

有没有办法让我的代码中的错误更详细?

谢谢,

2 个答案:

答案 0 :(得分:2)

在调试器菜单中,您可以在异常时中断它。有很多方法可以做到这一点。

在途中是从菜单Run-> Stop on Objective-C Exceptions上直接在Xcode中选择它。

另一种方法是将以下条目添加到主文件夹(〜/ .gdbinit)的.gdbinit文件中:

fb - [NSException raise]

当有人试图抛出异常时,这将使gdb始终进入调试器。您还可以在调试器中启动应用程序时手动添加断点。添加时只需省略命令的“fb”部分。

希望这些帮助,

克劳斯

答案 1 :(得分:0)

发生这种情况时,请在崩溃发生时立即尝试从“运行”菜单运行Debugger。它会准确显示哪条线路崩溃了。然后你可以在这里发布一些代码。没有代码,我们无法告诉你任何事情。