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
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