NSRangeException',原因:'*** -[__NSArrayM objectAtIndex:]:空数组的索引 5 超出范围'

Posted

技术标签:

【中文标题】NSRangeException\',原因:\'*** -[__NSArrayM objectAtIndex:]:空数组的索引 5 超出范围\'【英文标题】:NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 5 beyond bounds for empty array'NSRangeException',原因:'*** -[__NSArrayM objectAtIndex:]:空数组的索引 5 超出范围' 【发布时间】:2014-05-02 08:02:11 【问题描述】:

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

这是错误..

NSRangeException',原因:'*** -[__NSArrayM objectAtIndex:]:空数组的索引 5 超出范围'

【问题讨论】:

arrMydata 数组似乎为空。这就是崩溃日志的内容。 arrMydata 应该是 alloc] init 或者在将对象添加到 arrMydata 之前它应该有 arrayWithCapacity://somevalue @2-Stroker 我知道但我找不到解决方案。 @JohnDoe yes arrMydata alllock]init 在那里。任何解决方案? 您是否在数组中添加了任何对象?你能显示那个代码吗 【参考方案1】:

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

替换下面代码中的所有位置

[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! **

【讨论】:

我认为,只需这个[arrMydata count] > inxexPath.row 支票就足够了。 拥有1.正指数 //1.正索引 ([anArray objectAtIndex:-NUMBERS]) 会崩溃 没有人不会为cellForRowAtIndexPath:创建NSIndexPath。 @Supertecnoboff 如果您想要非软件示例,请在此处查看。 ***.com/a/24407937/675170 。祝你好运!【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

@IBOutlet var upAndDownArrowImages: [UIImageView]!

崩溃的原因是我错误地从情节提要中删除了其中 1 个 UIImageView。

【讨论】:

【参考方案5】:

在我的情况下,它为heightForRowAt indexpath 崩溃,请检查此方法是否顺利运行。

希望对某人有所帮助。

【讨论】:

以上是关于NSRangeException',原因:'*** -[__NSArrayM objectAtIndex:]:空数组的索引 5 超出范围'的主要内容,如果未能解决你的问题,请参考以下文章

NSRangeException',原因:'*** -[__NSArrayI objectAtIndex:]: index 2 beyond bounds [0 .. 1] CoreData 和 NS

异常“NSRangeException”,原因:“*** -[__NSArray0 objectAtIndex:]:索引 0 超出了空 NSArray 的范围”

由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*** -[__NSArrayM objectAtIndex:]:索引 0 超出空数组的范围”

由于未捕获的异常“NSRangeException”而终止应用程序,原因:-[__NSArrayM objectAtIndex:]:索引 0 超出空数组的范围

由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[__NSCFArray objectAtIndex:]: index (14) beyond bounds (14)”

*** 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*** -[__NSArrayI objectAtIndex:]: index 3 beyond bounds [0