Базовые данные не сохраняют атрибуты одной сущности - PullRequest
0 голосов
/ 07 ноября 2011

Я сейчас сталкиваюсь с проблемой использования Core Data. У меня есть две сущности A и B. A может иметь несколько B, поэтому существует отношение один ко многим. DataModel и классы все определены правильно и работают. Теперь вот проблема:

Когда я создаю сущность A и несколько сущностей B и устанавливаю все атрибуты, я могу их сохранить и загрузить. Когда приложение закрыто и объект A загружен, все атрибуты установлены правильно, и он все еще содержит все объекты B. Проблема в том, что внутри объектов B все атрибуты теряются и не сохраняются. При сохранении ManagedObejctContext ошибка не возникает.

Я не понимаю, почему при выборке всех B при запуске приложения они создают работы относительно значений атрибутов, а при выборке B из предыдущих запусков все атрибуты равны нулю.

Спасибо за ваши идеи

РЕШЕНИЕ: После создания нескольких новых сущностей и поиска различий я обнаружил, что свойства в сущности B каким-то образом были инициализированы с помощью @synthesize и @dynamic! Это была проблема, возникшая из

1 Ответ

1 голос
/ 07 ноября 2011

Проверьте следующее:

  • В DataModel правильно ли заданы обратные значения для двух ваших отношений (A имеет B и B принадлежит A)? (AtoB является обратной величиной BtoA)

  • Вы уверены, что они не принадлежат нескольким различным управляемым объектам ObjetcContext?

  • Вы уверены, что за изменениями, которые вы делаете для элементов B, следует [self.managedObjectContext save]?

...