2009-09-16 5 views
0

J'ai une généralisation dans mon modèle de données de base avec des entités nommées A, B, C disons où A est une super classe avec les sous-entités B et C.Comment créer super/sous-classe par programme dans les données de base?

A n'est pas abstrait, donc si je crée un A NSManagedObject, je dois créer et mettre en relation un seul objet de sous-classe B ou C. Comment puis-je y arriver? Je peux créer les entités, mais COMMENT puis-je dire au modèle que l'objet B est une sous-classe de l'objet A (ou vice versa?)

Remarque: J'ai créé le modèle par programmation et les sous-entités ont été définies correctement pour la description de l'entité "UNE".

Voici ma triste tentative d'aller de l'avant. Des idées? Points bonus si vous pouvez me diriger vers un échantillon de code qui fait le travail. Merci.

NSEntityDescription *aEntity = [[model entitiesByName] objectForKey:@"A"]; 
NSEntityDescription *bEntity = [[model entitiesByName] objectForKey:@"B"]; 

A *newA = [[A alloc] initWithEntity:aEntity insertIntoManagedObjectContext:context]; 
B *newB = [[B alloc] initWithEntity:ATC_Entity insertIntoManagedObjectContext:context]; 

Répondre

0

Merci au groupe CocoaDev pour répondre à ma question here et here.

Fondamentalement, il suffit d'insérer la subentité dans votre modèle et la super-réalité apparaît comme par magie. Si vous sous-classez votre NSManagedObjects, vous devez déclarer toutes les propriétés auxquelles vous voulez accéder.

Questions connexes