2016-10-30 30 views
0

當我嘗試刪除多個部分時,出現此錯誤。如何刪除目標c中的表視圖中的多個部分?

終止應用程序由於未捕獲的異常

「NSInternalInconsistencyException」,理由是:「試圖刪除部分 5,但只有有更新前4節」

這裏是我的代碼:

NSArray *selectedRows = [self.tableView indexPathsForSelectedRows]; 

int i=0; 

for (NSIndexPath *selectionIndex in selectedRows){ 


    NSManagedObjectContext *context = [self managedObjectContext]; 

    NSManagedObject *managedObject = [arrayToDelete objectAtIndex:i]; 
    [self.devices removeObject:[arrayToDelete objectAtIndex:i++]]; 
    [context deleteObject:managedObject]; 
    [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:selectionIndex.section] withRowAnimation:UITableViewRowAnimationFade]; 
} 


[self saveContext]; 

[arrayToDelete removeAllObjects]; 

回答

0

我會建議反方向,當你嘗試刪除數組中的東西。 即:

//int i=0; 

for (int i = [selectedRows count] - 1; i = 0; i--){ 

NSIndexPath *selectionIndex = selectedRows[i]; 
    NSManagedObjectContext *context = [self managedObjectContext]; 

    NSManagedObject *managedObject = [arrayToDelete objectAtIndex:i]; 
    [self.devices removeObject:[arrayToDelete objectAtIndex:i]]; 
    [context deleteObject:managedObject]; 
    [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:selectionIndex.section] withRowAnimation:UITableViewRowAnimationFade]; 
} 
相關問題