显示在Set中排序的UITableView Core Data对象中

时间:2010-05-25 14:22:27

标签: objective-c uitableview core-data nsset

我在tableView中显示来自CoreData的对象时遇到了困难。 我有两种实体:SampleSampleList。重要的是要知道SampleList有一个属性sampleSet,它是一组样本(样本的实体)

首先,我成功地显示了每个SampleList。这是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];

点击tableView中的一行后,我想在所选的UITableView的每个样本中显示另一个SampleList

我以为我可以转到子视图SampleList mySampleList。但是,我不知道该怎么办,因为它没有组织。 如何返回有序的Sample数组(例如按dateSample属性排序)?

感谢您的时间!

1 个答案:

答案 0 :(得分:4)

您可以在NSSet上使用NSArraysampleSet方法获取有序数组:

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

或者如果要指定特定的排序描述符而不是常规的“compare”方法:

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