Удаление объекта из набора сводит на нет его обратную связь в 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.