2010-03-25 5 views
1

Je souhaite créer un modèle de mappage entre deux modèles exactement identiques (sans migration par poids léger), sauf qu'une des entités (il y a un tas d'entités) a des attributs différents. Appelons cette entité "Personne". Et disons que le modèle de destination aCréation programmatique de NSMappingModel

1) a ajouté un nouvel attribut appelé « adresse »

2) a supprimé un attribut appelé « couleurYeux »

3) maintenu (non rien fait avec) un attribut appelé "nom"

Comment créer un NSMappingModel entre ces modèles par programme? J'arrive d'avoir quelques questions explicites qui pourraient me aider à le faire par moi-même:

Q1) Dois-je créer des objets NSEntityMapping pour toutes les entités autres que « personne », même si elles ne changent pas?

Q2) Comment traiter l'attribut "address" dans "Person", qui est un nouveau qui est créé? Devrais-je créer un NSPropertyMapping pour ça, ça ne transforme rien en quelque chose ("adresse")? Q3) Comment traiter l'attribut "name" dans "Person"? Dois-je créer un NSPropertyMapping pour cela, même s'il reste simplement le même? Q4) Pour le NSEntityMapping correspondant à "Person", est-ce que et non créer un NSPropertyMapping pour "eyeColor" est un bon moyen de le supprimer? Ou devrais-je créer un NSPropertyMapping pour "eyeColor"? Si oui, comment cet objet serait-il créé, c'est-à-dire ce qui déterminerait que son but est de se débarrasser de "eyeColor"? Merci d'avance, et je m'excuse de ne pas pouvoir répondre à ces questions moi-même, car la documentation n'a vraiment aucun bon exemple de création de NSMappingModels par programmation. Notez encore que je ne suis pas autorisé à utiliser la migration légère. Je dois le faire manuellement.

Répondre

1

J'ai toujours utilisé la fonction de cartographie automatique de Xcode, mais il me semble que vous pouvez aussi en apprendre beaucoup. Faire un modèle de (parties de) le modèle source, ajouter une version, le modifier pour refléter le modèle de destination et générer un modèle de mappage (menu Design >> Mapping Model). Si vous contrôlez ensuite le fichier .xcmappingmodel que Xcode a généré pour vous et dites au Finder de vous montrer le contenu du paquet, vous trouverez un fichier XML à l'intérieur qui liste tous les mappages. Vous pouvez utiliser le fichier XML comme guide pour vous aider à recréer le processus dans le code. Bonne chance.

Questions connexes