두 개의 NSManagedObject (Person 및 Car)와 두 개의 NSManagedObject (사람과 자동차)의 관계가 "비 역인"입니다. 그 관계는 역행하지 않습니다.NSManagedObject를 삭제하고 나중에 새로 고침 tableView가 올바르게 작동하지 않습니다.
두 개의 ViewController가 있는데 첫 번째에는 Person 객체의 각 인스턴스를 보여주는 TableView가 있으며 두 번째 ViewController에는 해당 Person의 모든 Car를 보여주는 Table View가 있습니다. 첫 번째 View Controller는 Person의 이름과 그 Person의 Cars 수를 보여줍니다.
모두 잘 작동하지만 사람의 자동차를 삭제하려고하면 내 문제가 나타납니다. 내가 차를 제거 어디에 두 번째보기에있는 경우
이[_person removeCarssObject:car1];
하지만 내 문제는 정말 나타나고, 나는 처음보기로 이동 : 내가 제대로 개체를 제거 생각하는 자동차의 수는 '아무튼 새로 고침과 응용 프로그램이 충돌합니다.
차를 추가하면 두 번째보기로 이동하면 작동하고 '차 수'가 증가합니다.
앱을 다시 실행하면 자동차가 삭제됩니다. 이것이 내가 객체를 삭제하는 방식이 정확하다고 생각하는 이유입니다.
나는 앱이 항상 자동차의 숫자가 0이 될 것이라는 점을 깨닫는다. 그렇지 않으면 앱이 다운된다.
도와 주시면 감사하겠습니다. 감사합니다.
UPDATE :
내가 내 코드를 변경했습니다, 지금은
- (void)viewWillAppear:(BOOL)animated{
나는 테이블에 적절한 데이터를 볼 수 있습니다이 방법으로 테이블 뷰의 데이터를 다시로드 보기,하지만 단지 1 초 정도, 나중에 응용 프로그램이 로그와 충돌합니다. "스레드 1 : EXC_BAD_ACCESS (코드 = EXC_I386_GPFLT)"
"모델 데이터"의 모든 관계에 삭제가 있습니다. 규칙 속성 : 무효화합니다. 충돌이 원인 일 수 있습니다.
Apple이 권장하는 것처럼 반비례 관계가없는 강력한 이유는 없습니다. – Mundi
문제가 무엇인지 진정으로 말하면 더 많은 코드가 필요할 것입니다.어디서'_person'을 설정했는지,'car1'을 어디에 설정했는지, 그리고 당신이 가져온 하나의 managedObjectContext를 어디에서 구성 할 것인가? – stevesliva
일부 코드를 추가하는 것 외에도 앱이 충돌 할 때 나타나는 메시지를 추가하십시오. 그것들은 보통 무엇이 잘못되었는지에 대한 중요한 세부 사항을 가지고 있습니다. –