나는 잠시 동안이 문제를보고 있었지만 깨뜨릴 수는 없습니다. 그 CoreData에 내장 된 첫 번째 다 - 대 - 다 관계와 분명히 내가 누락 된 단순한 무언가가 있습니다 ...다 대다 CoreData 관계의 한쪽 끝을 삭제하는 루프를 저장하십시오.
나는 두 개의 다른 핵심 데이터 '엔터티'를 유지하는 화면을 가지고 있으며 엔티티는 다 - 대 - 다 관계. 첫 번째 엔티티와 첫 번째 엔티티와 두 번째 엔티티 간의 관계는 화면의 첫 번째 탭에서 유지 관리되며 이는 첫 번째 엔티티 인스턴스를 삭제하고 첫 번째 엔티티와 두 번째 엔티티 간의 관계를 추가/삭제할 수있게합니다.
내 문제는 내가 두 번째 항목을 유지 관리하는 두 번째 탭에 있습니다. 엔티티가 잘 표시되고 속성을 업데이트 할 수 있지만 삭제하려고하면 끝없는 저장 루프가 발생합니다.
두 번째 엔티티의 NSManagedObject 클래스의 willSave 메서드에 NSLog 항목을 추가하여 루프를 확인했다고 생각합니다.
엔티티는 NSArrays가 지원하는 NSTableViews에 표시됩니다 (바인딩을 사용하지 않았습니다). 나는 (아래 참조) 두 개의 탭과 삭제 작업은 간단 사이에 하나 managedObjectContext를 공유 해요 :
int currentRow = [[tableView selectedRowIndexes] firstIndex];
NSManagedObject *targetObject = [self.array objectAtIndex:currentRow];
NSError *error = nil;
[managedObjectContext deleteObject:targetObject];
if (![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
희망 누군가가 도움이 될 수 있습니다 ...
감사
스콧
여기에 갈 많은 것이 없습니다. 무한 반복 루핑이나 '샘플'명령을 사용하여 추적을 얻으려면 오류가 발생했을 때 환경에 대한 정보를 더 게시 해보십시오. 최후의 수단으로 코드를 게시하십시오. – ImHuntingWabbits