Основные данные сохраняют объект с отношением к существующему объекту в базе данных. - PullRequest
1 голос
/ 01 октября 2011

Я пытаюсь сохранить новый объект в моем контексте, который будет иметь ссылку на внешний ключ (отношение «многие ко многим») на объект, уже находящийся в базе данных.

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

Я также попытался воссоздать его как новый объект, полагая, что данные ядра не будут создаватьновый объект, но просто добавьте связь, однако он создал новый объект.

Как я могу сохранить этот объект?

1 Ответ

1 голос
/ 01 октября 2011

Вы должны установить объект в отношении из вашего нового объекта, тогда для вас будут установлены обратные отношения.

Итак, вам нужно выяснить, что является причиной ошибки, которую вы видите.

В объектах CoreData, сгенерированных из mogenerator, код для добавления одного объекта в набор отношений обращается к изменяемому набору из свойства объекта:

NSMutableSet *result = [self mutableSetValueForKey:@"rounds"];

Затем вы можете добавить существующий объект в этот набор и попытаться сохранить новый объект.

Alternatley, CoreData для любого ManagedObject генерирует метод:

- (void)addRoundsObject:(Round*)value_;

Если вы используете этот метод, он также должен правильно добавить объект.

...