Базовые данные: незаконная попытка установить связь «statusmedia» между объектами в разных контекстах. - PullRequest
0 голосов
/ 07 сентября 2018

Я использую Core Data в своем приложении. После небольшой миграции и обновления кода до swift 4.0 я столкнулся с несколькими проблемами.

Выпуск 1

Отключение управляемого объекта 0x7fd0881de320 (0x7fd0884589b0) после его удаления из контекста.

Выпуск 2

Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Недопустимая попытка установить связь« statusmedia »между объектами в разных контекстах (source = (entity: Status; id: 0x10f6dc280

)

Проблема завершения очень серьезная.

Обратите внимание, что я использовал только один контекст (по умолчанию один, а не частный)

Дайте мне знать, если вам нужна дополнительная информация от меня ...

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 сентября 2018

К сожалению, многие могут привести к этому, но главные кандидаты для проверки будут:

  1. В вашей модели есть правила удаления отношений. Опция «каскад» должна удалять объект (ы) в отношении при удалении этого объекта. Если этого не ожидается, такая ошибка может легко возникнуть.
  2. Вы удаляете объект, но затем все еще используете его. Это логическая ошибка, но ее можно легко подтвердить, отметив удаленные управляемые объекты (поместите идентификаторы удаленных объектов в некоторый массив), а затем проверив, помечен ли сбойный объект (его идентификатор существует в этом массиве).
  3. Вы используете несколько контекстов, но не знаете об этом. Некоторые инструменты, такие как контроллеры выборки, являются потенциальными кандидатами.

Есть еще другие возможности, но я бы начал с упомянутых для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...