在 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 的对象时遇到困难。
我有两种实体:Sample
和 SampleList
。重要的是要知道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
上使用NSSet
和NSArray
方法来获得有序数组:
sortedArray = [[sampleSet allObjects] sortedArrayUsingSelector:@selector(compare:)];
或者如果您想指定特定的排序描述符而不是常规的“比较”方法:
sortedArray = [[sampleSet allObjects] sortedArrayUsingDescriptors:sortDescriptors];
【讨论】:
成功了!这实际上很快。但我不明白为什么我必须保留 sortedArray(在 .h 中声明)以上是关于在 UITableView 中显示 CoreData 对象在 Set 中排序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableView 中显示 Core Data 的数据
UITextfield 使用插入在 UITableView 中显示空行