对于非空数组,NSRangeException index 1超出bounds [0 .. 0]

时间:2014-11-30 14:11:37

标签: objective-c nsmutablearray nsrangeexception

上下文:我目前正在为斯坦福大学最近的iTunes上的cs193p课程进行作业2。我试图避免简单地查找解决方案,但我被卡住了。

问题:对于以下代码:

for (Card *c in self.chosenCards) { // for debugging purposes
    NSLog(@"Card: %@ index: %d", c.contents, [self.chosenCards indexOfObject:c]);
}

[self.chosenCards removeObjectAtIndex:0];

我一直得到以下结果:

2014-11-30 14:58:11.487 Matchismo[12262:60b] Card: 5clubs♦️ index: 0
2014-11-30 14:58:11.487 Matchismo[12262:60b] Card: 6clubs♣️ index: 1
2014-11-30 14:58:23.714 Matchismo[12262:60b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

为什么):?显然我的数组包含索引0处的对象,显然数组的边界延伸超过[0 .. 0]。

1 个答案:

答案 0 :(得分:0)

问题很可能是在其他地方(错误中报告的索引毕竟是1)。尝试设置exception breakpoint以识别导致异常的行(并且可能在将来节省大量时间和混淆任何类似问题:))