После дальнейшего тестирования, я думаю, это связано с идентификаторами временных и постоянных объектов; если мы видим то же самое, то я рискну предположить, что объекты, возвращаемые отношением «многие-многие» в MOC1, будут иметь временные, а не постоянные идентификаторы.
Предположительно, в MOC2 вы делаете несколько вставок для создания объектов в отношении ко многим. Когда вы закончите вставку, и непосредственно перед сохранением, получите массив объектов, которые были вставлены через [[moc2 pasteObjects] allObjects]. Передайте этот массив [moc2 receivePermanentIDsForObjects: error], используя массив отслеживания. Затем позвоните сохранить на MOC2.
Кажется, это работает для меня. Похоже, что по умолчанию вызов save в MOC2 фактически не приводит к созданию постоянных идентификаторов объектов в MOC1.