2011-08-18 1 views
2

내 앱에 저장된 모든 사용자 데이터를 삭제하는 설정 메뉴에서 '모두 삭제'버튼이 있습니다. 다음 코드가 사용됩니다.앱을 다시 시작하면 삭제 된 NSData가 다시 나타납니다.

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 

NSError *error; 
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
[fetchRequest release]; 

for (NSManagedObject *managedObject in items) { 
    [managedObjectContext deleteObject:managedObject]; 
} 

이것은 잘 작동하는 것으로 보이며 모든 데이터가 앱에서 사라지는 것처럼 보입니다. 즉, 앱이 닫히고 다시 시작될 때까지 ...

백그라운드에서 앱을 열지는 않지만 멀티 태스킹 스위처를 통해 앱을 강제 종료하면 모든 '삭제 된'데이터가 다시 나타납니다. 앱이 다시 시작됩니다.

-

모든 데이터는 사실 등이 어떤 결과를 반환하지 않습니다 모든 데이터를 검색, 삭제 할 때 사라질 것으로 보인다. 데이터를 삭제하는 방식에서 내가 뭘 잘못하고 있니? 어떤 도움을 많이 주시면 감사하겠습니다!

+0

당신이 관계를 삭제하지 않는 것이 아닌지 궁금해하니, 파일을 정말로 삭제하지 않았습니까? http://stackoverflow.com/questions/4638692/coredata-delete-object –

답변

8

다시 열기 전에 컨텍스트를 저장하는 것을 잊지 마십시오. 그렇지 않으면 모든 변경 내용이 저장되지 않은 상태로 유지됩니다.

+0

doh. [managedObjectContext save : & error]는 제가 누락 된 것입니다! 건배 :) –

+0

당신을 위해 작동하는 경우 답변을 수락하는 것을 잊지 마세요 :) – matthias

+0

@matthias 완료. 질문에 대한 답변을 받아 들일 때까지는 (10 분과 같은) 시간을줍니다. 그래서 나는 더 빨리하지 않았습니다! –