1

我有一个名为“费用”的实体的核心数据,类似于:实体:“费用”属性:“日期”、“类别”、“金额”......

我的问题是可以按年或按月获取多少费用吗?我知道获取是基于时间段还是类别,我可以使用 NSPredicate 过滤获取的结果。但是我心中的“日期”属性应该是按年和月分开的,所以我可以像在 SQL 查询中那样对它们进行分组。是否可以直接在 fetch 中执行此操作?否则,唯一的方法是将整个数据提取到 NSArray 并通过 NSPredicate 进行一些过滤。

我已经搜索了几天,但没有找到直接的答案。现在我实际上有点相信没有直接的解决方案。但我仍然想看看是否有人可以为我提供一些更好的解决方案,因为每个开发人员都必须解决这个问题。

任何建议将不胜感激,谢谢你们:)

=============================添加===================== == 此外,据我所知,关于索引列表的技术,我希望将基于“年月”的提取结果在 UITableView 中列出。我可能会根据每个索引的“年月”为每个数组提供费用。有没有更好的方法来做到这一点?

我基于数据结构的想法是建立一些对多的关系,从实体(年)到多实体(,月,年-月)到多实体(年-月,日期,金额......) . 当我为索引的 UITableView 获取每个数组时,也许这会给我带来一些便利。

4

2 回答 2

2

添加另外三个属性来存储实体中的日期组件(将日期组件分隔为日、月和年,然后存储这三个条目),并且还有一个日期属性来存储完整的日期。当您想按年或年月获取数据时,只需使用谓词。

NSPredicate *filter = [NSPredicate predicateWithFormat:@"month=%d AND year=%d",month,year];
[request setPredicate:filter];
 NSArray *results = [self.moContext executeFetchRequest:request error:nil];
 if(results.count > 0) {
                       //do your manipulations.
            }
于 2013-05-10T05:57:34.417 回答
2

您可以在 Expense 类中实现 @readonly 属性“年”和“月”,然后在谓词中使用它们。您不必单独存储这些值,只需使用 NSDateComponents 在 getter 中计算它们。

于 2013-05-10T05:58:49.890 回答