2010-05-05 6 views
1

tableView : commitEditingStyle : forRowAtIndexPath : 이벤트에서 하나의 NSManageObject를 삭제하려고 할 때 예외가 발생했습니다. 여기 내 코드의 일부 (내 로컬 NSManagedObjectContext 방법)이벤트 테이블 뷰에서 NSManageObject 삭제 : commitEditingStyle : forRowAtIndexPath :

- (void)tableView:(..)tableView commitEditingStyle:(..)editingStyle 
    forRowAtIndexPath:(..)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
    [managedObjectContext deleteObject: 
     [fetchedResultController objectAtIndexPath:indexPath]]; 
    ... 
    } 
} 

예외는 DeleteObject 매크로 라인에서 발생 하였다.

가 가

는 캐치되지 않는 예외 'NSObjectInaccessibleException'이유 : 'ID와 NSManagedObject : 0x3d07a30가 < X-coredata : // 0D2CC9CB-042B-496D-B3FE-5F1ED64EAB97/paymentType/P2 > 무효화 된이 예외 메시지 인 . '

개체 개체를 먼저 가져 와서 삭제하려고했습니다. 기업은 OK 보이지만 여전히 예외는 삭제 있었다 :

fetchedResultsController (NSFetchedResultsController 형)에서 검색 한 개체 개체가 삭제 될 수 있을지는 확실하지 않다
NSManagedObject *entityToDelete = 
    [fetchedResultsController objectAtIndexPath:indexPath]; 
[mangedObjectContext deleteObject:entityToDelete]; // Exception again. 

? 그렇다면 삭제를 위해 엔티티 객체를 가져 오는 다른 방법이 있습니까?

Apple's Core Data Tutorial for iPhone with events example에는 이벤트 엔티티 객체를 보관하는 NSArray가 있습니다. NSArray를 사용하여 로컬 엔티티 객체를 보유한 다음이를 삭제에 사용하는 것이 필요한지 확실하지 않습니다.

답변

0

내 NSManagedObjectContext에서 엔티티 개체를 삭제할 수없는 이유를 발견했다고 생각합니다. UITableViewController 클래스의 invalide NSManagedObjectContext 객체입니다. 간단히 말해서, 나는 속성 getter에서 컨텍스트 객체를 유지하는 것을 놓쳤습니다. 내 질문에 코드 괜찮습니다. 가져온 결과 컨트롤러 및 컨텍스트 개체가 양호하면 삭제가 작동합니다.

관련 문제