在 UITableView 中显示 CoreData 对象在 Set 中排序

Posted

技术标签:

【中文标题】在 UITableView 中显示 CoreData 对象在 Set 中排序【英文标题】:displaying in a UITableView CoreData objects ordered in a Set 【发布时间】:2010-05-25 14:22:27 【问题描述】:

我在 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】:

您可以在sampleSet 上使用NSSetNSArray 方法来获得有序数组:

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

或者如果您想指定特定的排序描述符而不是常规的“比较”方法:

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

【讨论】:

成功了!这实际上很快。但我不明白为什么我必须保留 sortedArray(在 .h 中声明)

以上是关于在 UITableView 中显示 CoreData 对象在 Set 中排序的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableView 中显示单元格的奇怪问题

如何在 UITableView 中显示 Core Data 的数据

UITextfield 使用插入在 UITableView 中显示空行

点击 UITextField 在 UITableView 中显示数据

在 UITableview 中显示图像

如何在 UIViewController 中显示 UITableView?