上下文:我目前正在为斯坦福大学最近的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]。
答案 0 :(得分:0)
问题很可能是在其他地方(错误中报告的索引毕竟是1
)。尝试设置exception breakpoint以识别导致异常的行(并且可能在将来节省大量时间和混淆任何类似问题:))