2016-10-30 6 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]; 
} 
関連する問題