2010-12-09 21 views
0

J'ai deux entités: match et player, que j'ai configurées avec un matchplayer de table intermédiaire car les joueurs peuvent jouer plusieurs parties, et les parties auront plusieurs joueurs. J'ai des vues où je peux ajouter, modifier et supprimer les deux parties et les joueurs séparément, mais je suis confus sur la façon de remplir l'entité matchplayer. J'ai mis en place l'entité matchplayer sans attributs mais avec des relations à la fois les entités de match et de joueur. J'ai une vue gérant les détails du match, et à partir de là, il charge une tableview de tous les joueurs où je peux sélectionner les joueurs que je veux 'connecter' au match. Mais c'est là que je suis coincé. Que dois-je ajouter à l'entité matchplayer pour stocker la relation?Comment stocker la 'relation' entre deux enregistrements de coredata?

Répondre

0

Vous n'avez pas besoin de créer une entité distincte uniquement pour maintenir la relation.
Ce que vous pouvez faire est de maintenir plusieurs relations de l'entité de correspondance à l'entité de joueur.
Supposons que cette relation soit nommée playerInMatch. Maintenant, chaque managedObjectContext de correspondance que vous insérez dans l'entité de correspondance, vous pouvez insérer plusieurs lecteurs à ce managedObjectContext en utilisant la méthode addPlayerInMatch: (c'est-à-dire la méthode accesseur qui est générée automatiquement lorsque vous créez des classes modales).
Maintenant, lors de la reprise d'un match particulier, vous pouvez récupérer un ensemble complet de joueurs de ce match grâce à sa relation. En utilisant cela, vous pouvez supprimer ou ajouter n'importe quel joueur à cet ensemble si vous le souhaitez.
(j'ai brièvement vous expliquer l'idée en espérant que vous avez une compréhension claire de l'utilisation des données de base relationship.If vous n'êtes pas parfaitement clair avec les données de base consultez tutoriel suivant:.
http://cocoadevcentral.com/articles/000085.php

+0

Merci pour la réponse que je comprends ce que vous dites à propos de l'abandon de l'entité matchplayer et de créer des relations to-many.Avec l'acesseur, puis-je le définir à un managedobjectcontext? Donc, si je sélectionne un joueur, j'utilise "addMatch" ensemble au contexte objet géré de l'enregistrement de match je suis intéressé? – lps