Objective c 具有groupBy的复杂NSFetchRequest
我觉得自己被这项任务困住了,也许有人能给我一个实现这一目标的方法: CoreData模型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对象(可能在该
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];