Базовые Данные, повреждающиеся many-many отношения

У меня есть следующая модель данных, и я хочу повредить many-many отношения между EntityA и EntityB. Я делаю, это путем удаления EntityC возражает, что соединяет их обоих. Я нашел, что EntityA все еще имеют отношения с EntityB, хотя я сохранил контекст управляемого объекта, я вижу, что изменения берут влияние после того, как записи EntityA повторно выбираются от базы данных. Есть ли что-то, что я пропускаю? Заранее спасибо, Sarah

alt text

1
задан Glorfindel 27 July 2019 в 17:06
поделиться

1 ответ

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

Это многопоточное приложение?

Вы основали это на одном из примеров Apple?

update

Референтная целостность является наиболее вероятной причиной этой проблемы. Когда вы удаляете A, связь с C с точки зрения C не может быть очищена немедленно, потому что Core Data выполняет такую ​​очистку либо в конце цикла выполнения, либо при следующем сохранении. Это означает, что если вы просматриваете значение до того, как произойдет что-либо из этого, возможно, существует связь. Вы смотрите на взаимосвязь сразу или она задерживается на некоторое время, то есть после сохранения?

update

В своем исходном вопросе вы заявили, что после сохранения EntityA все еще имеет отношение к EntityB. Это опечатка? Согласно вашей модели EntityA и EntityB не имеют прямой связи. Не могли бы вы прояснить?

или, возможно, показать код, в котором вы удаляете EntityC и где вы видите, что EntityA имеет связь с EntityB.

2
ответ дан 3 September 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: