我在iOS应用程序中使用CoreData来保存位置对象(名称,坐标)的简单列表。在CoreData记录出现损坏后,我在两次内存警告之后遇到了两次情况。CoreData:numberOfObjects in section incorrect
具体地,(在的tableView:numberOfRowsInSection :)
NSUInteger numObjects = [[[fetchedResultsController sections] objectAtIndex:section] numberOfObjects];
为第== 0,
然后返回4(在的tableView:的cellForRowAtIndexPath :)
aLocation = [fetchedResultsController objectAtIndexPath:indexPath];
为indexPath [ 0,3]产生一个例外:
NSRangeException:* - [_ PFArray objectAtIndex:]:index(3)beyond bounds(3)
ie CoreData表示表中有4行,但当表视图请求时不能返回最后一行的对象它。
两个问题:
1)任何关于这可能是如何产生的,以及如何防止它
2)一旦发生了,有没有什么办法来解决代码中的数据问题的想法?
感谢
斯蒂芬
嗨哈拉德 - 你可能是正确的,但可能的腐败只有在未处理的异常后重新启动应用程序后变得明显。我已经设法解决现在的内存警告的异常(一些奇怪的行为,只影响iPad 4.2(不是3.2),所以目前这个问题已经停止发生。有趣的是,在发布问题后,numberOfObjects中的差异是在对NSManagedObjectContext进行保存后修复。 – StephenT 2010-12-14 07:36:11