objective-c - _PFBatchFaultingArray objectAtIndex :

标签 objective-c xcode4.3

2012-06-15 17:53:25.532 BadgerNew[3090:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[_PFBatchFaultingArray objectAtIndex:]: index (0) beyond bounds (0)'
*** First throw call stack:
(0x353f688f 0x3779d259 0x353f6789 0x353f67ab 0x35d5fee3 0x5a5c9 0x59fd3 0x43819 0x32e63c8b 0x38153 0x38309 0x32e63c8b 0x4142d 0x32e63c8b 0x32ec363d 0x32ec35db 0x32ec2f15 0x32ec2c49 0x35d21 0x32e62cab 0x32e5c7dd 0x32e2aac3 0x32e2a567 0x32e29f3b 0x36fe922b 0x353ca523 0x353ca4c5 0x353c9313 0x3534c4a5 0x3534c36d 0x32e5b86b 0x32e58cd5 0x35a73 0x35a54)
terminate called throwing an exception(lldb) 

问题是什么?

它在 main 处中止。所以我什至不知道是哪一行导致的。

提示:在模拟器上运行。在我的 iPhone 上运行。不能在我 friend 的 iPhone 上运行。

最佳答案

您确实没有提供足够的信息来进行任何猜测...但您在这里:

  1. 您使用 CoreData 吗?有人认为您的 CoreData 包含数据,但当被问及时却没有。当有人向 fetchedResultsController.fetchedObjects 请求第一个对象(崩溃报告中提到的索引 0)但不存在(超出崩溃报告中的边界 0)时,就会发生崩溃
  2. “index beyond bounds”是与数组相关的一般错误提示。错误报告说有人要求数组的第一项(索引 0),但该数组是空的(边界 0)。那是一场车祸。

解决方法是在请求之前确保有数据。一种方法是检查

if ([myArray count] > index)
    value = [myArray objectAtIndex:index];

无论如何,我最好的猜测是 PFBatchFaultingArray 指的是 CoreData,这意味着没有简单的答案。

你有没有身份验证失败,迫使 CoreData 更新,但 FRC 仍指向旧数据?当“旧”frc 认为仍然有上次查看的数据时,就会发生崩溃,但 CoreData 中的"new"数据实际上数量较少。然后自动 UITableView 更新将询问行的数据,该行不再存在 == 崩溃。然后你需要在任何人尝试使用数据之前刷新你的 frcs。只有您知道何时何地可以完成刷新。

关于objective-c - _PFBatchFaultingArray objectAtIndex :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049312/

相关文章:

ios - 从 1970 年创建带有字符串时间的 NSDate

iphone - 类似于 iTunes 的 iOS 气泡弹出菜单

ios - XCode 4.3, "Cannot define category for undefined class"使用多个 header

javascript - 是否可以在 iPhone 应用程序中通过 JavaScript 绘制图形?

c++ - 你如何实现语法高亮?

git - 如何创建 .gitignore 文件

ios - “未找到有效的代码签名身份”错误

ios - 嵌入导航 Controller

objective-c - 在 Xcode 4.3 中,我可以像以前一样要求前向方法声明吗

ios - 在等待上一个执行完成时循环遍历 block