【问题标题】:CRASH: *** -[__NSArrayM objectAtIndex:]: index 4294967295 beyond bounds [0 .. 9]崩溃:*** -[__NSArrayM objectAtIndex:]:索引 4294967295 超出范围 [0 .. 9]
【发布时间】:2013-03-13 16:52:45
【问题描述】:

我在这个荒谬的索引处遇到了一个数组越界错误,根据我的研究表明,可能有一些代码调用了诸如 [array objectAtIndex: -1] 之类的负数,问题是这不是我的代码,我找不到它在任何地方。我到处都设置了断点无济于事。我认为它可能在 UITableView Delegate 方法中,但不能确定。无论如何可以访问日志中所有我的 int 变量的值。我无法对它们进行 NSLog 记录,因为我不知道崩溃发生在哪里。

谢谢!

【问题讨论】:

  • 查看错误时得到的堆栈跟踪。您的哪些功能是最新的(即最接近列表顶部的)?这就是问题所在。
  • 尝试在您的代码中找到 NSMutablearray,它会加载包含数组内容的表,但是当您尝试提取具有负值的索引时,它会崩溃。

标签: ios xcode exception


【解决方案1】:

尝试添加异常断点以查看是否捕获它:

1) 点击断点标签

2) 点击该标签屏幕左下方的“+”按钮

3) 选择“添加异常断点”

4) (可选)将 Exception:All 更改为 Exception:Objective-C

5) 点击完成

这通常会在导致崩溃的行上/之前中断。

祝你好运。

【讨论】:

  • 找到了,一个 int 变量被另一个 int 变量减去,导致一个负数。如果可以的话,我会投票赞成 10!谢谢!
  • 如果可以的话,我想给你+10,我是 XCode 和 obj-c 的新手,我正在努力找出导致我的异常的原因!谢谢
  • 简单的好选择...对生存至关重要
【解决方案2】:
  1. 添加异常断点
  2. 检查堆栈跟踪
  3. 查找最后执行的方法
  4. 记录用于获取数组值的值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多