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)
问题是什么?
它主要中断.所以我甚至不知道哪一行导致这个.
提示:运行在模拟器上.在我的iPhone上运行不在我朋友的iPhone上运行
解决方法
你依然没有给任何猜测的足够的信息…但在这里你是:
>您是否使用CoreData?有人认为你的CoreData包含数据,但是当被问到没有.当有人向第一个对象(在崩溃报告中提到的索引为0)请求fetchedResultsController.fetchedObjects时,会发生崩溃,但不存在(崩溃报告中超出界限0)
>“index over bounds”是与数组相关的通用错误提示.错误报告说有人要求数组(索引0)的第一项,但该数组为空(bounds 0).这是一个崩溃
修复是确保在您要求之前有数据.一种方法是检查
if ([myArray count] > index) value = [myArray objectAtIndex:index];
无论如何,我最好的猜测是PFBatchFaultingArray是指CoreData,这意味着没有简单的答案.
你有没有认证失败,这迫使CoreData更新,但是FRC仍然指向旧数据?崩溃会发生,当“旧”frc认为仍然有最后一次看到的数据,但CoreData中的“新”数据实际上较少.那么自动的UITableView更新会询问数据行,这不再存在==崩溃.然后,任何人尝试使用数据之前,您需要刷新您的frcs.只有你会知道,什么时候或哪里可以刷新.