# Core Data à petits pas...



## iphoneAddict (29 Juin 2010)

bonjour à tous,
je débute sur Cdata: j'ai 2 entités  livres & catalogues,une relation 1 à plsrs sur un relationship nommé livreVersCatalogue pour l'un et CatalogueversLivre pour l'autre
on va pour l'exemple mettre un champ titre pour livre et titre pour catalogue
la question simple que je me pose : je veux lister tous les livres d'un catalogue naturellement pas par le nom (si identique) mais par la relation qui les unis (livre a été ajouté via les méthode coredatageneratedaccessors)
comment faire dans un nspredicate si l'entité est livre pour "filtré" sur la relation ?

NSPredicate *predicate=[NSPredicate predicateWithFormat"self == %@", [catalogue objectID]];
ne fonctionne pas. [catalogue objectID] est il bien l'id unique de catalogue ? comment faire le lien sur l'attribut livreVersCatalogue de l'entité livre qui contient l'id de catalogue ?
merci pour vos lumières !


----------



## Rez2a (29 Juin 2010)

J'avoue que je ne comprends pas trop ce que tu veux faire.

Si tu cherches juste à lister tous les livres d'un catalogue, ça donnerait un truc comme ceci.

NSArray *livresDunCatalogue = [[tonCatalogue catalogueVersLivres] allObjects];

Après si tu veux trier ton array sur des propriétés de Livre, ça se passe du côté de NSSortDescriptor, mais honnêtement je suis pas sûr d'avoir bien compris ce que tu voulais. :rose:


----------



## iphoneAddict (30 Juin 2010)

en fait j'ai 1 1er tableview qui me liste les catalogues basés sur fetchedResultsController -> c'est ok
 Puis sur sélection d'un catalogue je veux reproduire un autre tableview mais qui ne filtrera que les livres issus du catalogue. Ce tableview est aussi "basé" sur fetchedResultsController . j'essayais donc à partir des prédicats de filtrer par la relation.
avec NSarray c'est ma structure du tableview qui doit changer ! 

exemple pour - (NSInteger)numberOfSectionsInTableView:UITableView *)tableView {
    return [[fetchedResultsController sections] count];
}

- (NSInteger)tableView:UITableView *)tableView numberOfRowsInSection:NSInteger)section {
    id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
    return [sectionInfo numberOfObjects];
}

en fait j'ai un objet A et un Objet B  A contient plusieurs B la relation : AversB pour l'objet A et BversA pour l'objet B
comment dans un NSFetchedResultsController (qui est une requête!) je "filtre" CONNAISSANT l'objet A séléctionné tous les objets B dépendants ?


----------

