"Основные данные не могут выполнить ошибку" для объектов, которые не были удалены

Для недавнего обновления приложения я вижу много журналов сбоя с ошибкой, что данные ядра не могут выполнить ошибку. Но нигде в приложении (запуске или в другом месте) я не удалял объекты, ошибки которых не могут быть выполнены, и они не были удалены каскадом. Как еще эта ошибка может произойти? И есть ли способ поймать его и исправить в рамках живого приложения?

Не могли бы также быть, если вы добавили, но еще не сохранили объект?

1 ответ

Возможно, что объект, который не был "должным образом" сохранен, вызвал такое поведение.

Один из способов сделать это:

  • Вставка объекта в дочерний контекст
  • получить постоянный идентификатор для этого объекта
  • сохранить в родительский контекст
  • получить объект в родительском контексте
  • обновить объект в родительском контексте
  • доступ к объекту в родительском контексте (выполнить ошибку для этого объекта)

Редактировать:

Другой способ достичь этого состояния в единой архитектуре контекста:

  • Вставить объект
  • получить постоянный идентификатор объекта
  • обновить объект
  • попытаться получить доступ к объекту (вызвать ошибку на объекте)

обновление может быть результатом захвата полученной информации контролером результатов, а не обязательно "видимой" в вашем приложении.

Кроме того, есть "ошибка" CoreData, которая не всегда позволяет вам поймать это исключение в родительско-детской контекстной архитектуре, но вы можете попробовать...

Однако, если это сценарий, с которым вы сталкиваетесь, это не является желательным поведением для вашего приложения. вы теряете новые данные, добавленные в хранилище.

licensed under cc by-sa 3.0 with attribution.