【问题标题】:displaying in a UITableView CoreData objects ordered in a Set在 UITableView 中显示 CoreData 对象在 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 属性排序)?

感谢您的宝贵时间!

【问题讨论】:

    标签: objective-c uitableview core-data nsset


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 成功了!这实际上很快。但我不明白为什么我必须保留 sortedArray(在 .h 中声明)
    猜你喜欢
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多