2010-06-17 4 views
0

J'ai mis en place mon modèle de données dans Xcode comme side base de données - Relations avec les entités ne fonctionne pas comme prévu

l'Entité

AttA1 AttA2

l'Entité

AttB1 attB2 attB3

J'ai ensuite mis en place les relations

Entité A

Nom: rlpToEntityB

Destination: l'Entité

inverse: rlpToEntityA

A Many: Vérifié

l'Entité

Nom: rlpToEntityA

Destination: Entité A

inverse: rlpToEntityB

A Many: unChecked

-à-dire la relation entre les deux où chacun de l'Entité peut avoir de nombreux

de l'Entité

Je crois comprendre que si je vais chercher un sous-ensemble de EntityB je peux alors récupérer les valeurs pour les EntityA connexes.

Je possède ce travail afin que je puisse récupérer les valeurs de entityB en utilisant

NSManagedObject * objMO = [fetchedResultsController objectAtIndexPath: indexPath];

strValueFromEntityB = [objMO valueForKey: @ "AttB1"];

Cependant, si je tente de récupérer une valeur liée à partir en procédant comme l'Entité suivante

strValueFromEntityA = [objMO valueForKey: @ "AttA1"];

je reçois l'erreur « L'entité l'Entité n'est pas valeur de clé de codage conforme à la Atta1 clé »

Sans surprise je suppose que si je passe les choses pour aller chercher de l'Entité je ne peux pas accéder à des attributs de l'Entité Ainsi, il apparaît la relation définie est ignorée.

Quelqu'un peut-il repérer ce que je fais mal? Je vous avoue que je suis très nouveau dans la programmation iPhone et surtout dans les Core Data, alors s'il vous plaît, allez-y doucement et donnez des explications détaillées ou dirigez-moi vers une ressource spécifique. J'ai téléchargé les exemples d'applications Apple (Core Data Books, Top Songs et recettes) mais je n'arrive toujours pas à le résoudre.

Merci à l'avance, Nev.

Répondre

1

Vous ne pouvez pas obtenir les attributs sur une entité directement d'une autre entité. Pour emprunter votre terminologie, vous devez faire quelque chose comme ceci:

(entité B) -> (relation à A) -> (attribut A)

ou

[[objMO valueForKey: @"rlpToEntityA"] valueForKey: @"AttA1"] 
1

Merci beaucoup pour votre réponse, mais j'ai maintenant résolu mon propre problème. alors que je suis sûr que votre réponse a un certain mérite ce n'est pas ce que j'ai utilisé pour résoudre mon problème. (peut-être que je ne l'ai pas très bien expliqué d'où la pénurie de réponses) mais en un mot j'ai eu besoin d'utiliser la méthode valueForKeyPath au lieu de valueForKey.

Acclamations, Nev.

Questions connexes