Основные данные сохраняют объект, имеющий отношение к существующему объекту в базе данных

#iphone #objective-c #core-data #one-to-many

#iPhone #objective-c #основные данные #один ко многим

Вопрос:

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

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

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

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

Ответ №1:

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

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

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

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

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

Альтернативно, CoreData для любого managedObject генерирует метод:

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

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

Комментарии:

1. Хелмштеттер Глен Спасибо за ваш ответ, я попробую это в понедельник и выберу вас в качестве правильного ответа.