У меня есть следующая модель данных, и я хочу повредить many-many отношения между EntityA и EntityB. Я делаю, это путем удаления EntityC возражает, что соединяет их обоих. Я нашел, что EntityA все еще имеют отношения с EntityB, хотя я сохранил контекст управляемого объекта, я вижу, что изменения берут влияние после того, как записи EntityA повторно выбираются от базы данных. Есть ли что-то, что я пропускаю? Заранее спасибо, Sarah
Я согласен с комментарием Барри, из вашего описания похоже, что вы используете более одного NSManagedObjectContext
, и это определенно вызовет проблему.
Это многопоточное приложение?
Вы основали это на одном из примеров Apple?
Референтная целостность является наиболее вероятной причиной этой проблемы. Когда вы удаляете A, связь с C с точки зрения C не может быть очищена немедленно, потому что Core Data выполняет такую очистку либо в конце цикла выполнения, либо при следующем сохранении. Это означает, что если вы просматриваете значение до того, как произойдет что-либо из этого, возможно, существует связь. Вы смотрите на взаимосвязь сразу или она задерживается на некоторое время, то есть после сохранения?
В своем исходном вопросе вы заявили, что после сохранения EntityA все еще имеет отношение к EntityB. Это опечатка? Согласно вашей модели EntityA и EntityB не имеют прямой связи. Не могли бы вы прояснить?
или, возможно, показать код, в котором вы удаляете EntityC и где вы видите, что EntityA имеет связь с EntityB.