2010-05-20 10 views
0

Ok, après avoir couru dans une impasse en modifiant un exemple Apple existant pour CoreData, j'ai commencé complètement nouveau créer mon propre projet et cela a fonctionné bien, jusqu'à ce que j'ai essayé d'accéder à une entité liée.Comment obtenir l'adresse de l'objet d'une entité associée avec CoreData?

Voici donc ce que j'ai fait.

J'ai créé 2 entités, où l'une est simplement l'information de détail de l'autre, donc il y a une relation un-2-one.

Entité # 1, Stocks:

  • Nom
  • valeur
  • détails -> relation à l'entité # 2

Entité # 2, StockDetails:

  • banque
  • publié
  • stock -> relation à l'entité # 1

Maintenant, j'ai créé le "classe d'objets gérés" pour les deux entités.

Ensuite, j'ai créé quelques lignes pour mettre des données dans ce

NSManagedObjectContext *context = [self managedObjectContext]; 

Stocks *stockinfo= [NSEntityDescription 
    insertNewObjectForEntityForName:@"Stocks" 
    inManagedObjectContext:context]; 
stockinfo.name = @"Apple"; 
stockinfo.value = [NSNumber numberWithInt:200]; 


StockDetails *thestockdetails = [NSEntityDescription 
    insertNewObjectForEntityForName:@"StockDetails" 
    inManagedObjectContext:context]; 

thestockdetails.bank = @"Bank of America"; 
thestockdetails.published = [NSDate date]; 
thestockdetails.stock = stocks_; 

stockinfo.details = thestockdetails ; 

NSError *error; 
if (![context save:&error]) 
{ 
    NSLog(@"A Problem occured, couldn't save: %@", [error localizedDescription]); 
} 

veux juste mentionner ici, que je ne reçois pas d'erreur à ce sujet.

Ensuite, je mets tout dans un UITableViewController pour un aperçu et un autre pour une vue détaillée. L'aperçu ne montre que les infos de l'Entité # 1 (Stocks) et lorsqu'il est sélectionné, il affiche la vue détaillée.

Maintenant, ici aussi, j'affiche les infos du formulaire Entité # 1 (Stocks) mais je veux aussi montrer l'Entité # 2 (StockDetails).

Voici comment je tente d'accéder aux données:

StockDetails *details_ = [stockinfo details]; 

Et cela me donne un EXC_BAD_ACCESS.

Donc, une idée de ce que je fais mal ici?

Merci

Répondre

1

Il n'y a rien de mal à

StockDetails *details_ = [stockinfo details]; 

Vous devriez regarder si vous ne relâchez pas par mégarde détails ou stockinfo quelque part. Puisque vous avez ceci dans un UITableViewController, l'objet pourrait être utilisé pour chaque ligne/section.

+0

Ok, stupide moi.J'ai effectivement publié les détails dans la méthode cellForRowAtIndexPath.Merci d'avoir signalé cela, je regardais toujours l'appel. – eemceebee

0

Pour une à une relation, cela devrait fonctionner:

StockDetails *details = [stockinfo valueForKey:@"details"]; 
+0

même résultat :(Je reçois toujours l'erreur – eemceebee