ios MagicalRecord排序。需要一个节标题列表

时间:2014-02-20 06:56:19

标签: ios uitableview magicalrecord

我使用MagicalRecord访问了Core Data模型。我使用此代码来获取按类别排序和分组的tableview:

frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory,activityName"
                                  ascending:YES withPredicate:nil
                                    groupBy:@"activityCategory"
                                   delegate:nil];

生成的tableview如下所示:

enter image description here

在另一个视图中,我使用相同的数据,但这次只需要一个节标题列表,由属性“activityCategory”表示。我认为这是一件简单的事情,但事实并非如此。这段代码,例如:

frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory"
                              ascending:YES withPredicate:nil
                                groupBy:nil
                               delegate:nil];

得出这个:

enter image description here

相反,我想要的只是一个类别列表(单数),在第一个示例中提供节标题的属性。我尝试了其他一些配置,但意识到我只是把东西扔在墙上,看它是否会粘住。 MagicalRecord的文档,与框架一样出色,但是很少。

有人可以指点解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我最好的猜测是,您需要在触发获取的结果控制器之前更多地配置获取请求。 MagicalRecord使用命名约定,如果您将find更改为request,它将返回NSFetchRequest对象。所以,对于你的情况,你需要像

这样的东西
NSFetchRequest *request = [ListActivity MR_requestAllSortedBy:@"activityCategory" ascending:YES inContext:context];
[request setResultType:NSDictionaryResultType];
[request setReturnsDistinctResults:YES];
frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                          managedObjectContext:context
                                            sectionNameKeyPath:nil
                                                     cacheName:nil];
[frc MR_performFetch];

答案 1 :(得分:0)

您可能需要考虑拥有ListActivityCategory实体,并将该类别存储为ListActivity上的字符串

这样你就可以在所有返回的ListActivity个对象中获取那些而不是“独特”的天堂