Удаление объекта из набора сводит на нет его обратную связь в CoreData

У меня есть ObjectA, который имеет отношение один ко многим с ObjectB. ObjectB имеет обратное отношение один к одному с ObjectA. Кажется, все идет хорошо, пока я не осознаю, что [objectA.objectBSet removeAllObjects] нарушает обратную связь экземпляров ObjectB, которые находятся внутри Set. objectA.objectBSet это просто NSMutableOrderedSet из объектов B, которые я (думаю) я получаю из инструмента Mogenerator (если это имеет какое-либо значение).

Это возможно или я что-то не так делаю? Может ли быть так, что простое удаление объекта из набора его родителя может автоматически повлиять на значение его обратной связи из CoreData?

Большое спасибо

2 ответа

Решение

Вот как это должно работать. Если два отношения являются обратными, то они должны соответствовать друг другу для каждого объекта. Если вы скажете ObjectA удалить все отношения к экземплярам ObjectBтогда те ObjectB экземпляры также удалят их отношение к этому ObjectA, Вот как работают обратные отношения. Если ObjectB случаи по-прежнему утверждается, что они связаны с ObjectA Например, обратные отношения будут в противоречивом состоянии.

Если это не то, что вы хотите по какой-то причине, используйте отношения между ObjectA а также ObjectB которые не противоположны друг другу.

Да, CoreData аннулирует обратную связь для вас, когда вы удаляете объекты из набора. Или, если вы сделаете objectB.objectA = nil, он также удалит objectB из набора objectA.

Другие вопросы по тегам