#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. Да, именно поэтому я сделал и у меня работает. Действительно, это было решением 😉 Спасибо 😉