我知道我的問題有點模糊,但我需要一些線索/想法可能是問題。我嘗試了一切,但找不到問題。controllerDidChangeContent index超越界限
我已經使用NSFetchedResultsController
與UITableView
幾次,並從未遇到過這種問題。我有一個表格視圖,我使用NSFetchedResultsController
將它與核心數據連接起來。我創建NSFetchedResultsController
這樣的:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:_database.managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setSortDescriptors:@[]];
[fetchRequest setEntity:entity];
NSFetchedResultsController *controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:_database.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
在當有更多的記錄比表視圖可以在一個屏幕上顯示與用戶試圖滾動到表視圖的底部有一個點,崩潰發生。
場景:
1)I創建insertNewObjectForEntityName
和保存歷境
2)I接收委託調用controller:didChangeObject:atIndexPath:forChangeType:newIndexPath
類型NSFetchedResultsChangeInsert
3)我嘗試向下滾動到表的底部,我收到一個錯誤:
CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. * -[__NSArrayM objectAtIndex:]: index 7 beyond bounds [0 .. 6] with userInfo (null)
如果用戶打開一個應用程序並嘗試滾動到列表的底部/頂部。我打開了sqlite文件,所有記錄都在那裏。任何幫助,將不勝感激。
您是否嘗試捕獲代表中的異常? –
您是否使用單個ManagedObjectContext?是_database.managedObjectContext與用戶滾動時添加額外數據時使用的上下文相同嗎? – NavinDev
是的,異常發生在[self.tableView endUpdates]上,原因是「 - [__ NSArrayM objectAtIndex:]:index 7 beyond bounds [0 .. 6]」。我不確定7是什麼,因爲我在列表中有更多的項目。 – sash