我正在编写一个基于核心数据的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时会发生此错误。按下返回键时会发生的情况是实体上的属性已更新。
我不知道什么数组超出范围,因为我在代码中没有使用任何数组!
有没有办法让我的代码中的错误更详细?
谢谢,
答案 0 :(得分:2)
在调试器菜单中,您可以在异常时中断它。有很多方法可以做到这一点。
在途中是从菜单Run-> Stop on Objective-C Exceptions上直接在Xcode中选择它。
另一种方法是将以下条目添加到主文件夹(〜/ .gdbinit)的.gdbinit文件中:
fb - [NSException raise]
当有人试图抛出异常时,这将使gdb始终进入调试器。您还可以在调试器中启动应用程序时手动添加断点。添加时只需省略命令的“fb”部分。
希望这些帮助,
克劳斯
答案 1 :(得分:0)
发生这种情况时,请在崩溃发生时立即尝试从“运行”菜单运行Debugger。它会准确显示哪条线路崩溃了。然后你可以在这里发布一些代码。没有代码,我们无法告诉你任何事情。