CoreData исчезновение отношений после сохранения проблемы - PullRequest
1 голос
/ 30 ноября 2010

У меня есть отношение ко многим в моей модели CoreData без обратной связи, которая вызывает некоторые странные поведения.

Например: сущность типа A имеет отношение «ко-многим» к сущности типа B. Нет обратной связи между B и A. Теперь, когда я связываю объекты типа A с некоторыми объектами типа B, нет проблема. Но после сохранения всего контекста объекта управления и перезапуска приложения связей между объектами больше нет, за исключением одного объекта (который все еще имеет связь). Может случиться, что разные объекты типа A имеют отношение к одному конкретному объекту типа B, поэтому они совместно используют один и тот же объект.

В чем может быть проблема?

1 Ответ

1 голос
/ 30 ноября 2010

Самое простое объяснение состоит в том, что вы на самом деле не имеете отношения ко многим, а скорее к одному.Вы просто сохраняете последний B, который вы установили.Я бы записал отношения непосредственно перед сохранением, чтобы подтвердить, установлен ли только один B.

В качестве альтернативы, без обратной связи, объект может исчезнуть с графа без возникновения ошибки.Если B не имеет отношения к A, это означает, что B не наблюдает за A и ему все равно, что с ним происходит.Вы можете изменять график, не зная об этом.Правила удаления могут также вызвать странное поведение в этом случае.

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

...