NSRangeException',原因:'*** - [__ NSArrayM objectAtIndex:]:索引5超出空数组的边界'

时间:2014-05-02 08:02:12

标签: ios objective-c uitableview

在我的应用程序中,当我第一次运行应用程序时,它运行正常。但是当我再次运行2次时,它会崩溃。

这是错误..

NSRangeException',原因:' *** - [__ NSArrayM objectAtIndex:]:索引5超出空数组的界限'

enter image description here

enter image description here

5 个答案:

答案 0 :(得分:18)

原因:您正在访问要访问索引处对象的空数组。

替换下面代码中的所有地方

[arrMydata objectAtIndex:indexPath.row];

 //1. Positive index ([anArray objectAtIndex:-NUMBERS]) will crash

 //2. within the array boundary

 if([arrMydata count] > 0 && [arrMydata count] > indexPath.row){

    shrObj=[arrMydata objectAtIndex:indexPath.row];

 }
 else{

    //Array is empty,handle as you needed

 }

**Here You can see the non software example, which will explain this issue. Good luck! **

答案 1 :(得分:3)

您的数组为空,但您正在尝试访问其中的对象。这就是问题所在。

答案 2 :(得分:3)

原因:根据您的日志,您正在尝试访问空数组。只需通过以下代码修复此问题

if (arrMydata.count > inxexPath.row)
    sharObj = [arrMydata objectAtIndex:indexPath.row]

答案 3 :(得分:0)

如果这对某人有帮助:就我而言,该数组不在代码中,而是一个IB插座,该插座是故事板上的5个UIImageViews数组。

@IBOutlet var upAndDownArrowImages:[UIImageView]!

崩溃的原因是我错误地从情节提要中删除了其中的UIImageViews之一。

答案 4 :(得分:0)

就我而言,它heightForRowAt indexpath崩溃了,请检查此方法是否可以顺利运行。

希望它可以帮助某人。