您必须为适当的时间段创建一个NSFetchRequest
过滤器。NSPredicate
假设您想列出两个日期之间的所有费用,您可以实现一个返回NSFetchRequest
此期间过滤器的方法:
- (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;
}
然后,您可以使用此 fetchRequest 例如,NSFetchedResultsController
类似于我在您的其他问题中的回答:
CoreData 和 TableViews
然后,您所要做的就是在您想要的时间段内为 start- 和 endDate 创建 NSDate 对象,并将它们传递给此方法。