Mam relacji jeden do wielu w wykresie Core Data i staram się zrozumieć różnicę między wykorzystaniem metody CoreDataGeneratedAccessors i proste zadanie do zmiany relacji. Na przykład Core Data Programming Guide ma przykład działu i pracownika. W tym przykładzie oni użyć CoreDataGeneratedAccessors się zatrudnianiem i zwalnianiem pracowników:Core-Data CoreDataGeneratedAccessors vs. proste przypisanie
[aDepartment addEmployeesObject:newEmployee];
[aDepartment removeEmployeesObject:firedEmployee];
Nie zdefiniować relację odwrotną, ale powiedzieć „dział” jest odwrotna zależność do „pracowników”. Czy następni powinni osiągnąć to samo?
newEmployee.department = aDepartment
firedEmployee.department = nil;
Według sekcji Manipulating Relationships and Object Graph Integrity programowania Przewodnik danych Core, późniejsze przykłady powinny automatycznie naprawić wszystkie relacje w celu utrzymania spójności wykresu. Jeśli tak, to czy istnieje jakiś powód użycia CoreDataGeneratedAccessors, gdy istnieje odwrotna zależność? Czy użycie CoreDataGeneratedAccessors zachowuje spójność wykresu na relacjach odwrotnych?
Martin- dzięki za odpowiedź. Mam sytuację, w której mogę jednorazowo użyć [aDepartment addEmployeesObject: newEmployee], ale kolejne wywołania w aplikacji (bez względu na to, czy są prowadzone u innego nowego pracownika), nie są aktualizowane. Jednak zastąpienie tego przez newEmployee.department = aDepartment zawsze działa. Zachowania tych dwóch połączeń wydają się niekonsekwentne, więc jestem zdziwiony, że oni powinni robić to samo. Pomysły? – chris
@chris - brzmi to tak, jakbyś nie miał odwrotnej relacji między jednostką działu a jednostką Employee. – TechZen
Doświadczyłem takiego zachowania tylko w pewnych szczególnych sytuacjach, gdy obserwacje są uruchamiane podczas przetwarzania pewnych podstawowych danych i modyfikacji kodu obserwatora.(to był błąd mojego kodu) –