Основные данные: проблема с графом объектов

#iphone #objective-c #xcode #ipad #core-data

#iPhone #objective-c #xcode #iPad #основные данные

Вопрос:

У меня проблема с Core Data. Проблема возникает в этом сценарии :

 -I have two entities, for instance "Department" and "Employee". 
-A to-many relationship from "Department" to "Employee"
  

Когда я генерирую модель, генерируются два класса: «Отдел» и «Сотрудник». Класс «Department» имеет отношение «NSSet» благодарности сотрудника ко многим.

В коде я создаю два экземпляра «Отдела» (d1, d2) и один экземпляр «Сотрудника» (e1). Я бы хотел, чтобы экземпляр e1 мог находиться как в d1, так и в d2 (через взаимосвязь). Итак, я делаю что-то вроде :

 [d1 addEmployeeObject:e1 ];
[d2 addEmployeeObject:e1 ];
  

Проблема в том, что, когда я перезапускаю приложение, e1 больше не находится в d1 (только в d2). Кажется, core-data автоматически удалил e1 из d1. Но я этого не хочу!!!

Согласно документации core-data, кажется, что это подходящее поведение ( прочитайте главу «Манипулирование отношениями и целостность графа объектов» по ссылке выше).

Как я могу предотвратить такое поведение?? Есть идеи?

Спасибо за чтение, очень надеюсь, что я выразился ясно.

Ответ №1:

Создайте обратную зависимость, называемую отделами, «ко многим» от сотрудника к отделу.

Отметьте «Отделы» как «Сотрудники», где «Сотрудники» — это количество от отдела к сотруднику.

Когда вы создадите классы, вы должны увидеть, что в отделе есть NSSet * employees, а в Employee есть NSSet * departments.

Комментарии:

1. Да, именно поэтому я сделал и у меня работает. Действительно, это было решением 😉 Спасибо 😉