In the end, I did more or less, as Vinka suggested. To create a predicate that retrieves records for a specific year (s), I liked this:
- (NSPredicate*) predicateFromYear:(NSInteger)start span:(NSInteger)aSpan { NSCalendar *cal = [NSCalendar currentCalendar]; NSDateComponents *dc = [NSDateComponents new]; [dc setYear:start]; NSDate *startDate,*endDate; startDate = [cal dateFromComponents:dc]; [dc setYear:aSpan]; endDate = [cal dateByAddingComponents:dc toDate:startDate options:0]; [dc release]; return [NSPredicate predicateWithFormat: @"date >= CAST(%f, \"NSDate\") AND date < CAST(%f, \"NSDate\")", [startDate timeIntervalSinceReferenceDate], [endDate timeIntervalSinceReferenceDate]]; }
kindoblue
source share