首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心数据模型设置

核心数据模型设置
EN

Stack Overflow用户
提问于 2012-10-28 20:04:19
回答 1查看 180关注 0票数 0

我有一个使用核心数据模型的费用跟踪iOS应用程序:

场景:

->名为"Money“的抽象父实体,具有”供应商“、”日期“、”金额“等属性。两个子实体“费用”和“收入”继承自父实体“钱”。然后还有其他实体,如"Category“和"subCategory”,以及它们的属性。到目前为止:我的数据模型中有5个实体(钱、费用、收入、类别和子类别)。

问:我想要实现的是每天,每周,每两周,每月和每年的费用跟踪。我正在考虑让一个实体使用12个属性( Jan - Dec -> month names)来表示“月”,但这不是太复杂了吗?

有什么想法?

我有一个表视图,并使用NSFetchedResultsController将费用和收入的组合填充到我的表视图中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 20:40:33

您必须使用NSPredicate创建一个NSFetchRequest,以便根据适当的时间段进行过滤。假设您想要列出两个日期之间的所有费用,您可以实现一个方法,该方法返回一个针对此期间进行过滤的NSFetchRequest

代码语言:javascript
复制
- (NSFetchRequest *)filteredFetchRequestForEntity:(NSString *)entityName startDate:(NSDate *)startDate endDate:(NSDate *)endDate
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@", startDate, endDate];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];
    [fetchRequest setPredicate:predicate];

    return fetchRequest;
}

例如,您可以在NSFetchedResultsController中使用此fetchRequest,类似于我在另一个问题中的回答:CoreData and TableViews

然后,您所要做的就是为start创建NSDate对象,为您所需的时间段创建endDate对象,并将它们传递给此方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13108656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档