2013-10-11 4 views
0

У меня есть два объекта. Один из них - водитель и один - это автомобилиXCode - Удаление связанных объектов в данных ядра

водитель может иметь много автомобилей, автомобиль может иметь только один водитель.

Это обратная связь и по выбору с обеих сторон.

Когда я удаляю водителя, автомобиль «осиротел» Он по-прежнему существует, но больше не существует соответствующего драйвера.

Я хотел бы, чтобы автомобиль был уничтожен, когда его водитель больше не существует. Это может не иметь логического смысла, но это учебное упражнение.

Снимите флажок, чтобы установить флажок для отношений внутри объекта cars. Я бы подумал, что для того, чтобы существовать, у автомобиля должен быть водитель.

Когда я удаляю свой объект-драйвер, он не может сохранить контекст. Я получаю эту ошибку.

"Операция не может быть завершена (Cocoa ошибка 1570)." UserInfo = 0xc586430 {NSValidationErrorObject = (Entity: Автомобили; идентификатор: 0xc580d30; данные: { драйвера = ноль, грима = A; модели = B; year = 222; })

Почему это работает, когда оба отношения являются необязательными. Но как только я изменяю отношения, он больше не работает?

ответ

1

Почему бы не указать свой водитель -> отношение автомобиля к каскаду при удалении? Причина, по которой ваша операция выходит из строя, такая же, как и при попытке создать объект драйвера без автомобиля (если это отношение является обязательным), проверка не выполняется.

+0

Beat me to it +1 – borrrden

+0

только что понял. я приму свой ответ, потому что я люблю тебя – hamobi

+0

О, эй спасибо :) – JonahGabriel

0

ОК. Это не связано с опциональным или необязательным. Я делаю так, чтобы на машине был водитель. то я удаляю драйвер, но это нарушает правила, так как автомобиль остается без водителя.

правило удаления должно быть установлено в каскад, чтобы удалить связанный автомобиль.

Смежные вопросы