【发布时间】:2012-11-08 08:09:16
【问题描述】:
场景:
我有一个费用跟踪 iOS 应用程序,我将费用从费用详细视图控制器存储到表视图(带有获取的结果控制器)中,该表视图显示费用列表以及类别、金额和日期。我的实体“Money”中确实有一个日期属性,它是支出或收入的父实体。
问题:
我想要的基本上是对给定一周、一个月或一年的费用进行分类,并将其显示为部分标题标题,例如:(2012 年 10 月 1 日至 10 月 7 日),它显示了费用金额和相关内容根据那个特定的星期。该视图中提供了两个按钮,如果我按下右侧按钮,它将一周增加一周(2012 年 10 月 1 日至 10 月 7 日现在显示 2012 年 10 月 8 日至 10 月 15 日),同样,左侧按钮将减少一周一个星期。
我的问题是如何实现上述目标。我写了一些伪代码 - 任何帮助将不胜感激。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date == %@)", dateToFilterFor];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Expense" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:predicate];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"SomeCacheName"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
为了按一周过滤它,谓词应该是什么?另外,我想在 fetched result controller 中有一个部分名称,但它会是什么?
【问题讨论】:
-
NSPredicate *tomorrowsData = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date
-
@ACB 谢谢,但这并不能真正回答我的问题。我需要知道我们如何计算周并将其放入谓词中。你给了我一个关于谓词的粗略概念。
-
您可以为此使用 NSDate 和相关方法吗?从按下按钮的两天开始添加/删除 7 天。您是否遇到了问题?
-
@acb 我无法弄清楚我应该如何做到这一点,比如显示一周(NSCalendar 中的开始日 - 星期日),然后如何通过按下按钮将一周增加一周然后在谓词中显示它。你能在我上面写的代码中回答所有这些吗?
-
@ACB 在您的回答中,day1、day2 是什么?我的意思是应该是一周,比如一周的开始日期和一周的结束日期,对吧?
标签: ios core-data nsfetchedresultscontroller