s @Core Data mesclam dois Contextos de Objetos Gerenciados

@My Cocoa / Application possui um Contexto de Objeto Gerenciado no thread principal. Quando eu precisar atualizar meus dados, meu programa irá:

Iniciar um novo tópicoReceber novos dados de um servidorCrie um novo Contexto de Objeto Gerenciado Envie uma notificação para o thread principal para mesclar os dois contextos

Esta é a função que recebe a notificação no thread principal

- (void)loadManagedObjectFromNotification:(NSNotification *)saveNotification
{
    if ([NSThread isMainThread]) {
        [self.managedObjectContext mergeChangesFromContextDidSaveNotification:saveNotification];
    } else {
        [self performSelectorOnMainThread:@selector(loadManagedObjectFromNotification:) withObject:saveNotification waitUntilDone:YES];     
    }
}

Não recebo nenhum erro. Meu problema é o resultado da mesclagem, ele realmente concatena objetos gerenciados nos dois contexto

Minha entidade é uma lista realmente simples de atributo e relacionament

Talvez a mesclagem precise de algumas instruções para entender quando um Objeto Gerenciado atualizado NÃO é novo, mas uma versão editada do primeiro. Eu imagino que em algum lugar eu precise especificar uma maneira de identificar univocamente uma Entidade (um atributo, por exemplo, pode agir como um ID) e algo como uma política de mesclagem (se 2 objetos gerenciados representarem o mesmo objeto, use o lastModificationDate more recente)

Só preciso entender como mesclar corretamente os 2 contextos para ter uma única cópia atualizada para cada objet

UPDATE 1

O problema agora está claro para mim. O contexto 2 tem uma grande diferença: o ObjectID. Enquanto o contexto no thread principal buscava o ManagedObjects com o coordenador Persistent Store, o segundo thread cria esse objeto buscando uma URL remota. Mesmo que os objetos tenham o mesmo conteúdo, eles terão 2 objectID diferente

Meus objetos já tinham um identificador único, eu poderia usar setObjectId para definir esse valor. (A documentação da Apple diz que isso NÃO é uma boa ideia).

questionAnswers(1)

yourAnswerToTheQuestion