2011-09-26 4 views
0

관리 대상 객체를 삭제하려고하는데 누락 된 부분이 있습니까?NSManagedObject 삭제가 작동하지 않고 계속 객체를 검색 할 수 있습니다.

[managedObjectContext deleteObject:managedObject]; 

NSError *error; 

if (![self.managedObjectContext save:&error]) { 
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
    return NO; 
} 

return YES; 

이 코드를 실행할 때 개체를 검색 할 수 있습니다. 당신이

[[self managedObjectContext] setPropagatesDeletesAtEndOfEvent:NO] 

처음 할 경우 어떻게됩니까

NSManagedObject *objectiveManagedObject = [managedObjectContext objectWithID:objectID]; 

return (ObjectiveManagedObject *)objectiveManagedObject; 

답변

0

?

+0

이로 인해 다른 코드가 손상되어 유닛 테스트간에 데이터베이스가 지워집니다. – TheLearner

0

self.managedObjectContextmanagedObjectContext 사이를 전환했음을 확인했습니다. 이것들이 같은 변수라는 것이 확실합니까? 직접 ivars에 액세스하지 마십시오; 접근자를 사용하십시오 (initdealloc 제외). 이렇게하면 모든 종류의 문제를 피할 수 있습니다.

managedObject의 ID는 objectID입니다. 그것들은 단순히 비슷하게 보이는 두 가지 객체 일 수 있습니다.

+0

예. 나는 여러 번 objectID를 기록했다. – TheLearner

0

저장된 이전의 답변, 확인하지 않았다 내가 가장 가능성이 설명은 관리 객체가 필요한 관계의 마지막 개체가 있다는 말을 감안할되지 않았습니다. 따라서 관계의 다른 끝에있는 오브젝트가 h 제되거나 두 x 째 오브젝트가 관계에 추가 될 때까지 h 제할 수 없습니다.

또한 영구 저장소가 읽기 전용으로 설정되어 있지 않은지 확인할 수도 있습니다. 읽기 전용 저장소를 작성할 때 어떤 오류가 발생했는지 기억하지 못합니다.

또한 개체를 테스트하기 전에 잠시 기다려야 할 수 있습니다. 저장은 디스크 작업이므로 비교적 느립니다. 실제로 저장에 실패 할 수 있습니다.

어떤 경우에도 저장에서 오류 반환을 트래핑해야합니다.

관련 문제