Мне интересно, возможно ли "перестроить" отношения в Core Data.
По сути, я запутался при создании своих сущностей, получая данные с сервера SQL, я заполнял свои сущности в виде таблиц (одна таблицана одну таблицу) и теперь кажется, что отношения не работают.
Давайте рассмотрим пример:
Я настроил свою модель с двумя объектами (отдел и сотрудник), сотношение «один ко многим» myRelationWithDepartment (один сотрудник много сотрудников) и соответственно сгенерированные подклассы управляемого объекта.
Я получил сотрудников отдела таблиц и таблиц с моего сервера SQL и вставил всех сотрудников в сотрудника моего объектаи только тогда (потому что мне нужно найти первых сотрудников) все отделы в моем отделе сущностей, используя базовые данные, сохраняя контекст и т. д. Все в порядке, просто отношения не работают.
Теперь я могусделать запрос на выборку из отдела или сотрудника, он работает нормально.Но если я получаю сотрудника и делаю это:
[[anEmployee myRelationWithDepartment] departmentName];
он возвращает ноль, без предупреждений компиляции или ошибок, просто кажется, что ни один отдел не связан с сотрудником.
Так что я предполагаючто отношения не работают.
Я включил в модель идентификаторы, которые были у меня в таблицах SQL, поэтому я могу связать их вручную (но на самом деле у меня несколько сущностей).
Я просмотрел руководство по Core-Data и обнаружил следующее:
[aDepartment.employees addObject: newEmployee];// не делайте этого!
, тогда уведомления об изменении KVO не отправляются и обратное соотношение не обновляется правильно.
Напомним, что точка просто вызывает метод доступа, поэтому по тем же причинам:
[[сотрудники отдела] addObject: newEmployee];// также не делайте этого!
Вот почему я предполагаю, что отношения имеют плохую форму.Есть ли способ восстановить отношения впоследствии (поскольку я делю некоторые идентификаторы в модели между сущностями)?