Objective c 具有groupBy的复杂NSFetchRequest

Objective c 具有groupBy的复杂NSFetchRequest,objective-c,core-data,nspredicate,nsfetchrequest,nsfetchedresultscontroller,Objective C,Core Data,Nspredicate,Nsfetchrequest,Nsfetchedresultscontroller,我觉得自己被这项任务困住了,也许有人能给我一个实现这一目标的方法: CoreData模型 EKEvent <<---> EKCategory 而且它应该按类别分组(事件与类别有一个关系),因为我只需要在UITableView中表示类别,并显示event.@sum.amount在UITableViewCells中为每个类别提取的事件 问题是如何构造我的NSFetchRequest,以获得包含NSDictionary对象的结果,其中包含: 1. EKCategory对象(可能在该

我觉得自己被这项任务困住了,也许有人能给我一个实现这一目标的方法:

CoreData模型

EKEvent <<---> EKCategory
而且它应该按类别分组(事件与类别有一个关系),因为我只需要在
UITableView
中表示类别,并显示
event.@sum.amount
UITableViewCell
s中为每个类别提取的事件

问题是如何构造我的
NSFetchRequest
,以获得包含
NSDictionary
对象的结果,其中包含: 1.
EKCategory
对象(可能在该类别的某些字段上,如
.title
.iconImageName
) 2.汇总此类别中的所有
。事件
,确认已通过
NSPredicate

3.根据您上面的评论,确认通过的
EKEvent
对象数组
NSPredicate

:准确无误


获取类别,获取或以您想要的方式获取。然后,从每个类别中,从关系中获取事件集。使用谓词筛选该事件集。然后使用array KVC运算符获取剩余事件的总和。

因此,您的表中每个类别都有一行,并且您希望显示每个类别(事件在设定的日期范围内)的事件金额总和?是,正确!我甚至不需要获取事件对象本身,只需要获取类别和事件。@sum.amountThank!我完全按照你告诉我的那样做了——效果很好。我花了很长时间在一个NSFetchRequest或NSFetchedResultsController中找到一些解决方案来完成这项工作,但看起来这是徒劳的,不管怎样,当前的解决方案性能不错
[NSPredicate predicateWithFormat:@"((created >= %@) AND (created <= %@))", self.fromDateFilterValue, self.toDateFilterValue];