0

我在 iphone 模拟器中崩溃了:

由于未捕获的异常“NsRangeException”而终止应用程序,原因是 NSMutableArray exchangeObjectAtIndex:withObjectAtIndex:]: index 6 beyond bounds [0 .. 5]'

我该如何解决?谢谢

4

1 回答 1

2

此崩溃日志说明您有一个数组,但您引用的索引为 6,而该数组中只有 6 个对象,这意味着应该有 5 个索引,因为索引从 0 开始计数,如下注释所示:

大批 (

第一个对象 - 索引 0

第二个对象 - 索引 1

第三个对象 - 索引 2

第 4 个对象 - 索引 3

第 5 个对象 - 索引 4

第 6 个对象 - 索引 5

)

所以exchangeObjectAtIndex:withObjectAtIndex:不会起作用,因为在其中任何一个中,您都提供了 6 的索引,但只有 5 个索引。

这是一个工作演示的示例:

[array exchangeObjectAtIndex: 5 withObjectAtIndex: 2]; 

这是完全有效的,因为两个索引都对数组有效。

这被称为NSRangeException一个非常明显的名称,您的索引超出范围(太大!)

于 2012-12-16T14:55:48.277 回答