2010-01-25 7 views
0

J'ai deux objets gérés qui ont une relation bidirectionnelle. Il s'agit d'un 'segmentWithDetails' qui contient un objet 'segment'.Récupération de relations avec les données de base

J'utilise

NSEntityDescription *entity = [NSEntityDescription entityForName:@"SegmentWithDetails" 
              inManagedObjectContext:connectionDetailsService.connectionDetailsContext]; 
[fetchRequest setEntity:entity]; 

pour obtenir mon segmentWith Détails. Cela fonctionne bien. MAIS, quand j'essaye de récupérer le segment contenu, je reçois zéro.

J'ai essayé de le faire avec

Segment *segment = [segmentWithDetails valueForKeyPath:@"segment"]; 

et

Segment *segment = segmentWithDetails.segment; 

Mais cela ne fonctionne pas (= zéro). J'ai également essayé de modifier le NSFetchedResultsController. Je ajouté ce qui suit:

[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"segment"]]; 
[fetchRequest setIncludesSubentities:YES]; 

Mais ces deux ne semblent pas faire de différence. D'après ce que je comprends de la documentation fine d'Apple, la relation devrait simplement fonctionner en utilisant des failles.

Qu'est-ce qui me manque ici? Comment accéder à l'objet de relation 'segment' à partir de 'segmentWithDetails' ??

Répondre

1

Problème résolu. Ce n'est pas comme ça que j'ai lu les données, mais comment je les ai mises dans CoreData. Le code affiché ci-dessus est en effet correct. Merci pour la réponse Jaanus.

+3

juste FYI - vous pouvez commenter les réponses – Eimantas

4

Cela devrait fonctionner comme décrit. Etes-vous sûr que l'objet/relation "segment" existe réellement et contient un objet réel? Vérifiez le modèle de données que cette relation n'est pas facultative et vérifiez votre code que vous avez effectivement stocké quelque chose.

+0

Oui, ils ont une relation existante. J'utilise un service Web SOAP pour les remplir avec des données. Pas de problème là-bas. Je peux aussi changer le fetchedResultsController pour basculer entre segmentWithDetails et segment. Mais je suis incapable d'obtenir du segment au segment parentWithDetails ou vice versa. Je réutilise le NSManagedObjectContext hors de l'objet que j'ai utilisé pour remplir les objets avec des données. Cela pourrait-il être un problème? – P5ycH0