mapeamento de propriedades não está associado corretamente. Por quê?

EDIT 1 Embora eu compreenda que, para esse cenário em particular (e outros similares), eu poderia usar o editor de mapeamento sozinho para migrar minha loja corretamente, para que os valores no armazenamento persistente não fiquem por aí, mas essa não é uma solução para o meu problema atual, mas apenas evita abordar a raiz do problema. Estou interessado em seguir minha política de migração personalizada, pois isso me dará muito controle durante o processo de migração, especialmente para cenários futuros em que a configuração de uma política de migração personalizada funcione para mim. Isso é para uma solução de longo prazo e não apenas para esse cenário.

Peço que você tente me ajudar a resolver a situação atual em vez de me desviar para uma migração leve ou me aconselhar a evitar o uso de uma política de migração. Obrigado.

Estou realmente ansioso para resolver isso e suas valiosas contribuições / idéias sobre o que eu poderia fazer para corrigir esse problema.

O que eu fiz: Eu tenho uma política de migração configurada para que os dados de origem possam ser copiados nos dados de destino deversion 1 do modelo principal paraversion 2.

Esta é a política de migração:

- (BOOL)createDestinationInstancesForSourceInstance:(NSManagedObject *)sInstance entityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError **)error {

    // Create the product managed object 
    NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:[mapping destinationEntityName]
                                                               inManagedObjectContext:[manager destinationContext]];

    NSString *productCode = [sInstance valueForKey:@"productCode"];
    NSNumber *productPrice = [sInstance valueForKey:@"productPrice"];

    [newObject setValue:productCode forKey:@"productCode"];
    [newObject setValue:productPrice forKey:@"productPrice"];

    //This is the field where the name has changed as well as the type.
    [newObject setValue:[NSNumber numberWithBool:YES] forKey:@"productPriceNeedsUpdating"];

    // Set up the association between the old source product and the new destination Product for the migration manager
    [manager associateSourceInstance:sInstance withDestinationInstance:newObject forEntityMapping:mapping];


    /* 
  A test statement to make sure the destination object contains the correct
    values int he right properties:

    Product description: <NSManagedObject: 0xb983780> (entity: Product; id: 0xb9837b0 <x-coredata:///Product/t97685A9D-09B4-475F-BDE3-BC9176454AEF6> ; data: {
        productCode = 9999;
        productPrice = "2.09";
        productPriceNeedsUpdating = 1;
    })
    */


    // Set up the association between the old source product and the new destination Product for the migration manager

    return YES;
}

Portanto, mesmo que as propriedades testadas mostrem os valores corretos no tempo de execução, os valores resultantes salvos no armazenamento de modelo de dados estão incorretos, conforme visto nas capturas instantâneas.

Aqui está uma comparação da versão 1 para a versão 2 do armazenamento de dados.

Versão 1: correta

para a versão 2: que agora está armazenando os valores incorretamente.

A produção esperada deve ter o preço do produto inserido noproductPrice&nbsp;campo e não noProductPriceNeedsUpdating&nbsp;campo que na verdade deve ter apenas valores booleanos. Alguém pode me ajudar a entender o que estou fazendo de errado ou explicar o que está acontecendo aqui?

ATUALIZAÇÃO 1&nbsp;- Aqui estão meusentity mappings:

Atualização 2 - 20 / ago / 2014 01:02 GMT

Quando eu removo o atributoProductPriceLastUpdated&nbsp;do tipodate&nbsp;da versão 1 e remova o atributoProductPriceNeedsUpdate&nbsp;do tipoboolean&nbsp;na versão 2, deixando apenas os dois atributos que correspondem na versão 1 e 2, tudo funciona. Mesmo que eu possa deixá-lo aqui e seguir em frente, não posso ignorar os usuários que estão atualmente usando a versão 1 do banco de dados, que tem esse sentidoProductPriceLastUpdated&nbsp;atributo que eu preciso do tipo convertido em booleano e também tenho o nome alterado paraProductPriceNeedsUpdate. É quando as coisas começam a ficar estranhas e os valores dos preços são mostrados noProductPriceNeedsUpdate&nbsp;campo em vez doproductPrice&nbsp;campo.

Espero que alguém possa resolver o problema original e me diga por que o mapeamento de propriedades entityMapping, ou mais, não está sendo salvo corretamente?

Atualização 3 - EntityMapping e propriedades:

Versão 1

Versão 2

Alguma ideia?