2010-05-25 9 views
0

J'ai des difficultés à afficher des objets provenant de CoreData dans une tableView. J'ai 2 sortes d'entités: Sample et SampleList. Ce qui est important à savoir est qu'un SampleList a un attribut sampleSet qui est un ensemble d'échantillons (entité de l'échantillon)affichage dans un objet UITableView CoreData rangé dans un ensemble

D'abord j'ai réussi à afficher tous les SampleList. Voici viewDidLoad:

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SampleList" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastSampleDate" ascending:NO]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
[request setSortDescriptors:sortDescriptors]; 
[sortDescriptor release]; 
[sortDescriptors release]; 

NSError *error; 
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 

if (mutableFetchResults == nil) { 
// Handle error 
} 

[self setSampleListArray:mutableFetchResults]; 
[mutableFetchResults release]; 
[request release]; 

Une fois que je clique sur une ligne dans mon tableView, je voudrais afficher dans un autre UITableView chaque échantillon du SampleList sélectionné.

Je pensais que je pourrais passer à la sous-vue SampleList mySampleList. Mais alors, je ne sais pas quoi en faire car ce n'est pas organisé. Comment puis-je retourner un tableau ordonné de Sample (classé par dateSample par exemple)?

Nous vous remercions de votre temps!

Répondre

4

Vous pouvez simplement utiliser NSSet et NSArray méthodes sur sampleSet pour obtenir un tableau commandé:

sortedArray = [[sampleSet allObjects] sortedArrayUsingSelector:@selector(compare:)]; 

ou si vous souhaitez spécifier des descripteurs de tri particuliers au lieu de la méthode régulière « comparer »:

sortedArray = [[sampleSet allObjects] sortedArrayUsingDescriptors:sortDescriptors]; 
+0

Ça a marché! C'était rapide en fait. Mais je ne comprends pas pourquoi j'ai dû retenir sortedArray (qui est déclaré dans le .h) – leochab

Questions connexes