Незаконная попытка установить связь 'xyz' между объектами в разных контекстах

Я вошел в систему через SSH и попытался убить процесс, но он, похоже, не работал - возможно, неправильный процесс, так как там было немало.

Вы всегда можете перезапустить apache как последнее средство ; это исправит, -)

42
задан Alex Reynolds 12 October 2009 в 13:35
поделиться

2 ответа

Вы не можете иметь отношения между объектами в разных контекстах управляемых объектов. Таким образом, один из способов обойти это - поместить объект в контекст управляемого объекта.

Например:

NSManagedObject *book = // get a book in one MOC
NSManagedObject *owner = // get an owner in a different MOC
[[owner mutableSetValueForKey:@"books"] addObject:[owner.managedObjectContext objectWithID:[book objectID]]];

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

69
ответ дан 26 November 2019 в 22:03
поделиться

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

2
ответ дан 26 November 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: