2016-10-30 1 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]; 
} 
관련 문제