我使用MagicalRecord访问了Core Data模型。我使用此代码来获取按类别排序和分组的tableview:
frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory,activityName"
ascending:YES withPredicate:nil
groupBy:@"activityCategory"
delegate:nil];
生成的tableview如下所示:
在另一个视图中,我使用相同的数据,但这次只需要一个节标题列表,由属性“activityCategory”表示。我认为这是一件简单的事情,但事实并非如此。这段代码,例如:
frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory"
ascending:YES withPredicate:nil
groupBy:nil
delegate:nil];
得出这个:
相反,我想要的只是一个类别列表(单数),在第一个示例中提供节标题的属性。我尝试了其他一些配置,但意识到我只是把东西扔在墙上,看它是否会粘住。 MagicalRecord的文档,与框架一样出色,但是很少。
有人可以指点解决方案吗?
谢谢!
答案 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
个对象中获取那些而不是“独特”的天堂