2009-08-18 2 views
1

코어 데이터를 사용하는 요청과 함께 작동하는 iPhone 3.0 애플리케이션이 있습니다. 요청 상태 (sectionNameKeyPath : @ "status")별로 그룹화 된 모든 요청이있는보기가 있습니다. 또한 사용자가 요청 상태를 변경할 수있는 또 다른보기가 있습니다.NSInternalInconsistencyException 섹션에서 마지막 행을 제거했을 때

특정 그룹에 하나의 행/요청이 있고 사용자가 해당 요청의 상태를 편집 할 때 문제가 발생하므로 (해당 행이 소속 된 섹션이 사라져야 함) 다음 코드에서 예외가 발생합니다. 2009-08-18 15 : 04 : 55.866 응용 프로그램

//Change the request status. Request is the NSManagedObject 
request.status = [NSNumber numberWithInt:Responded]; 

// Save the context. 
NSError *error; 
//The exception is raised at the following line 
if (![request.managedObjectContext save:&error]) { 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); // Fail 
} 

예외 텍스트는 다음과 같다 [263 : 20B] *** 인해 캐치되지 않는 예외 'NSInternalInconsistencyException'응용 프로그램 종료, 이유는 : '잘못된 update : 섹션 0의 행 수가 무효입니다. update (8) 후에 기존 섹션에 포함 된 행 수는 i에 포함 된 행 수와 같아야합니다. n 업데이트 (1) 전에 해당 섹션을 삽입하거나 삭제 (0 삽입, 0 삭제) 행 수를 더하기 또는 빼기. '

아무에게도 왜이 예외가 있으며 어떻게 처리해야하는지 설명 할 수 있습니까?

답변

3

이것은 테이블 수정 코드에 문제가 있음을 나타냅니다. 아마도 [table deleteRowsAtIndexPaths : withRowAnimation :]을 호출 중이지만 -numberOfSectionsInTableView를 동기화하지 않았습니다. -tableView : numberOfRowsInSection : 결과가 새로운 값이됩니다.

+0

아니요, 저는 deleteRowsAtIndexPaths를 호출하지 않습니다. 난 그냥 변경하고 UITableViews없이 다른보기에서 관리되는 개체를 저장. 문제는 섹션을 생성하기 위해 NSFetchedResultsController에서 사용하는 속성을 변경한다는 것입니다. P. 미안 해요, 제 모국어가 아닙니다. – MrZoidberg

관련 문제