2016-08-21 4 views
0

Предположим, у меня есть два объекта с именем Book and Publisher 1. У книги есть атрибут: - автор, название. 2. Издатель имеет атрибут: - имя, тип я установить связь: - Издатель в книге (один ко многим и установить его в качестве обратной связи)Зависимость отношения CoreData

с отношением выбранного я могу видеть в DataModal инспектора строка называется Delete Rule с тремя вариантами 1. аннулирует 2. Каскад 3. Запретить

Что это, и я хочу, чтобы удалить объект Publisher только если удалить последнюю книгу

спасибо заранее. Я просто новичок :)

ответ

1

Документов сделать хорошую работу, объясняющую этими Удалять правила

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/HowManagedObjectsarerelated.html

Отношение Удалять правила

правила удаления в отношениях определяет, что должно произойти если для удаления исходного объекта предпринята попытка . Обратите внимание на формулировку, если сделана попытка . Если для правила удаления отношений установлено значение «Запретить», возможно, что невозможно, чтобы исходный объект не удалялся. Рассмотрим снова отношение сотрудников отдела , а также влияние различных правил удаления .

Запрет Если существует объект, по меньшей мере, одного объекта в местоположении назначения (сотрудники), не удаляйте исходный объект (отдел).

Например, если вы хотите удалить отдел, вы должны убедиться, что все сотрудники этого отдела сначала переданы в другом месте (или уволены!); в противном случае отдел не может быть удален.

Nullify Удалить взаимосвязь между объектами, но не удалять любого объекта.

Это имеет смысл только в том случае, если отношения отдела для сотрудника являются необязательными или если вы гарантируете, что вы установите новый отдел для каждого сотрудников перед следующей операцией сохранения.

Cascade Удалить объекты в пункте назначения, когда вы удаляете источник.

Например, если вы удалите отдел, уволите всех сотрудников в этот отдел в то же время.

Действие не имеет ничего общего с объектом в пункте назначения .

Например, если вы удалите отдел, оставьте всех сотрудников , даже если они все еще считают, что они принадлежат к этому отделу.

Должно быть ясно, что первые три из этих правил полезны в различных обстоятельствах. Для любых данных отношений вам нужно выбрать , чтобы выбрать наиболее подходящий вариант, в зависимости от бизнес-логики. Менее очевидно, почему правило No Action может быть полезным, потому что если вы используете его , можно оставить граф объекта в состоянии несоответствия (сотрудники, имеющие отношение к удаленному отделу ).

Если вы используете правило No Action, вам необходимо убедиться в том, что согласованность графического объекта поддерживается в . Вы отвечаете за , устанавливая любое обратное отношение к значащему значению. Это может быть выгода в ситуации, когда у вас есть отношение ко многим, и там может быть большое количество объектов в пункте назначения.